재우니의 블로그

이 게시물은 기존 ASP.NET MVC 5 또는 ASP.NET Web Forms 응용 프로그램을 Windows 컨테이너로 마이그레이션하는 프로세스에 대해 설명합니다. Windows 컨테이너에서 기존 .NET Framework 기반 응용 프로그램을 실행하면 앱을 변경할 필요가 없습니다. Windows 컨테이너에서 앱을 실행하려면 앱이 포함 된 Docker 이미지를 만들고 컨테이너를 시작하십시오.

먼저 프로그램 및 기능에서 컨테이너 옵션을 활성화해야합니다.

 

이 기능을 활성화하면 Docker for Windows 를 다운로드하여 설치해야합니다 . Docker를 설치하면 Visual Studio에서 새 ASP.NET MVC 프로젝트를 만들 수 있습니다. 프로젝트를 만든 후에 Dockerfile는 프로젝트 응용 프로그램 루트에 이름  가진 새 파일을 만들 수 있습니다 . Dockerfile을 만든 후에는 다음 줄을 추가해야합니다.

 

FROM microsoft/aspnet COPY ./bin/Release/PublishOutput /inetpub/wwwroot

 

다음으로 프로젝트를 게시해야합니다. 지금은 파일 시스템에 게시하고 있습니다. 다른 위치에 게시하는 경우 위치 대신 해당 ./bin/Release/PublishOutput위치 를 제공해야합니다 . 완료되면 docker build 명령을 실행해야합니다. 그러면 ASP.NET 앱을 실행하는 이미지를 만드는 데 도움이됩니다.

 

docker build -t mvchelloworld .

 

-t 인수는 이미지를 식별하는 데 도움이되는 태그 이름을 지정합니다. 이미 microsoft/aspnet이미지를 이미 다운로드 했으므로 빌드 명령이 매우 빠르게 실행되고 이미지가 빌드됩니다. 처음으로하는 경우 시간이 걸릴 수 있습니다.

이제 docker images 명령을 실행하면 시스템의 모든 도커 이미지가 표시됩니다.

다음으로 컨테이너를 시작해야합니다. 다음 명령을 사용하여 컨테이너를 수행 할 수 있습니다.

 

docker run -d --name mvchelloworld mvchelloworld

 

 -d 인수는 이미지를 분리 모드로 실행하는 데 도움이되고, 도커 이미지는 셸에서 분리 된 상태로 실행됩니다. --name 인수는 컨테이너에 이름을 부여하는 데 도움이됩니다. 기본 aspnet 이미지는 이미 포트 80에서 수신 대기하도록 컨테이너를 구성했습니다. IIS를 실행중인 경우 IIS가 중지되었는지 확인하십시오. 그렇지 않으면 컨테이너가 시작되지 않을 수 있습니다.

성공하면 고유 식별자가됩니다. 현재 Windows 컨테이너 릴리스에서는 http : // localhost를 찾아 볼 수 없습니다. 이것은 WinNAT에서 알려진 동작이며 향후에 해결 될 것입니다. 그것이 해결 될 때까지 컨테이너의 IP 주소를 사용해야합니다. 다음 명령을 사용하여 도커 컨테이너의 IP 주소를 식별 할 수 있습니다.

 

docker inspect -f {{ .NetworkSettings.Networks.nat.IPAddress }} mvchelloworld

 

실행중인 컨테이너의 IP 주소가 표시됩니다.

이제 IP 주소로 찾아 볼 수 있습니다.

Dockerfile 을 수동으로 추가하는 대신 Visual Studio는 Docker 지원을 추가하여 Docker 에서 실행되는 앱을 디버깅하는 데 도움이됩니다. 먼저 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 Docker Support  > Add >를 선택하십시오.

솔루션에 프로젝트 Dockerfile docker-compose 프로젝트 가 추가됩니다 .

다음을 클릭 docker-compose.yml하면 Docker를 디버깅 대상으로 볼 수 있습니다.

Docker 옵션을 클릭하면 Visual Studio가 앱을 빌드하고 docker 컨테이너에 배포하고 디버깅 프로세스를 시작하며 브라우저에서 앱을 시작합니다. 도커 응용 프로그램을 디버깅하는 것은 간단하고 간단합니다. 중단 점을 지정하기 만하면 중단 점에 도달하면 Visual Studio가 실행을 일시 중지합니다.

 

https://dotnetthoughts.net/dockerize-an-existing-aspnet-mvc5-application/

 

Dockerize an existing ASP.NET MVC 5 application

This post is about describe the process of the migrating of existing ASP.NET MVC 5 or ASP.NET Web Forms application to Windows Containers. Running an existing .NET Framework-based application in a Windows container doesn't require any changes to your app.

dotnetthoughts.net