.NET Core的出現使得ASP.NET應用在Linux環境下使用變得更加普及。而配合上Docker容器,令ASP.NET應用的佈署與管理也變得更加方便。在新的項目中運用ASP.NET Core無可非議,但對於既有項目,比如構建於傳統的ASP.NET Web Forms以及後來的ASP.NET M ...
.NET Core的出現使得ASP.NET應用在Linux環境下使用變得更加普及。而配合上Docker容器,令ASP.NET應用的佈署與管理也變得更加方便。在新的項目中運用ASP.NET Core無可非議,但對於既有項目,比如構建於傳統的ASP.NET Web Forms以及後來的ASP.NET MVC,如果不能使用上當前的容器技術,不免有些可惜。幸好,最新的Windows系統(Windows 10與Windows Server 2016)上提供了對Windows容器的支持,使得那些現有應用可以一併匯入容器的管理中。
要使用Windows容器,首先需要開啟這項功能。
第二步,將Docker切換為Windows容器
接著在現有ASP.NET MVC項目(這裡假設有一個ASP.NET MVC 5應用)的根目錄添加一個新文件,名稱是Dockerfile
。文件內容如下:
FROM microsoft/aspnet
COPY ./bin/Release/PublishOutput /inetpub/wwwroot
然後可以點擊發佈項目了。
在項目根目錄下運行構建新的Docker鏡像的命令docker build -t mvchelloworld .
(如果是第一次拉取microsoft/aspnet鏡像的話,這個過程會很長)
啟動Docker容器docker run -d --name mvchelloworld mvchelloworld
查看容器的IP地址docker inspect -f '{{ .NetworkSettings.Networks.nat.IPAddress }}' mvchelloworld
用這個地址瀏覽已佈署好的網站,比如:
如果已經用上Visual Studio 2017的話,可以不用手動添加Dockerfile
文件,在項目上選擇添加Docker Support,即會出現Dockerfile
文件與docker-compose
工程。
不僅如此,你還能由此調試佈署在Docker中的網站。
之後,一切如故,唯獨舊酒已裝入新瓶。