# Migrating ASP.NET MVC Applications to Windows Containers
Running an existing .NET Framework-based application in a Windows container doesn't require any changes to your app. To run your app in a Windows container you create a Docker image containing your app and
start the container. This topic explains
how to take an existing [ASP.NET MVC application](http://www.asp.net/mvc)
and deploy it in a Windows container.
You start with an existing ASP.NET MVC app, then build the published assets using Visual Studio. You use Docker
to create the image that contains and runs your app. You'll browse to the site running in a Windows container and verify the app is
working.
This article assumes a basic understanding of Docker. You can learn about Docker by reading the [Docker Overview](https://docs.docker.com/engine/understanding-docker/).
The app you'll run in a container is a simple website that
answers questions randomly. This app is a basic MVC application
with no authentication or database storage; it lets you focus
on moving the web tier to a container. Future topics will show how to
move and manage persistent storage in containerized applications.
Moving your application involves these steps:
1. [Creating a publish task to build the assets for an image.](#publish-script)
1. [Building a Docker image that will run your application.](#build-the-image)
1. [Starting a Docker container that runs your image.](#start-a-container)
1. [Verifying the application using your browser.](#verify-in-the-browser)
The [finished application](https://github.com/dotnet/docs/tree/master/samples/framework/docker/MVCRandomAnswerGenerator) is on GitHub.
There is no `ENTRYPOINT` command in this Dockerfile. You don't need one. When running Windows Server with IIS, the IIS process is the entrypoint, which is configured to start in the aspnet base image.
In many docker examples, you may see -p to map the container and host ports. The default aspnet image has already configured the container to listen on port 80 and expose it.
in the example shown. Type that URL into your browser, and you should see the running site.
> [!NOTE]
> Some VPN or proxy software may prevent you from navigating to your site.
> You can temporarily disable it to make sure your container is working.
The sample directory on GitHub contains a [PowerShell script](https://github.com/dotnet/docs/tree/master/samples/framework/docker/MVCRandomAnswerGenerator/run.ps1) that executes these commands for you. Open a PowerShell window, change directory to your solution directory, and type:
```console
./run.ps1
```
The command above builds the image, displays the list of images on your machine, starts a container, and displays the IP address for that container.
To stop your container, issue a `docker
stop` command:
```console
docker stop randomanswers
```
To remove the container, issue a `docker rm` command:
```console
docker rm randomanswers
```
[windows-container]: media/aspnetmvc/SwitchContainer.png "Switch to Windows Container"
[publish-connection]: media/aspnetmvc/PublishConnection.png "Publish to File System"