[Linux之旅一] .NET Core 2.2部署到Docker中
第一步,使用VS2017或者VS2019創建.NET Core 2.2或3.1的項目,如下圖:

在創建項目的時候記得勾選Docker支援,這樣會自動創建Dockerfile文件,這個文件用於構建Docker鏡像;(補充:鏡像運行在容器中)
第二步,編輯Dockerfile文件,本人初學不便講解它的用法,本人按照以下方式進行編輯:
FROM microsoft/dotnet:2.2-aspnetcore-runtime COPY . /netcorewebtests WORKDIR /netcorewebtests EXPOSE 80 ENTRYPOINT ["dotnet", "NetCoreWebTests.dll"]
第三步,在Linux中創建即將部署網站的目錄(本人在/var目錄下創建了www目錄,再在www目錄創建本演示項目的目錄),使用以下命令
mkdir /var/www/netcorewebtests]
第四步,發布項目,並使用WinSCP將發布的項目文件上傳到第三步創建的目錄中
第五步,拉取項目依賴的基礎鏡像,例如本演示項目是.net core2.2開發,則拉取.net core 2.2的鏡像,如下圖:
docker pull microsoft/dotnet:2.2-aspnetcore-runtime
第六步,創建本演示項目的鏡像,使用如下命令:
docker build -t netcorewebtests .
備註:netcorewebtests 是創建鏡像的名稱,這個命令會根據當前目錄下dockerfile配置文件,進行打包。運行查看鏡像 docker images
第七步,創建本演示項目的容器(鏡像運行在容器中),使用如下命令:
備註: 創建容器,其中前一個apiweb是容器名 後一個netcorewebtests是上一步的鏡像名。 --name:指定容器名稱; -p:指定容器埠,是進行宿主和容器之間埠的映射,(-p 宿主埠:容器埠); -d:指定容器後台運行,這樣容器就會一直運行,即使關掉終端窗口。 請使用如下命令: docker run --name=apiweb -p 80:80 -d netcorewebtests 或者 docker run --name=apiweb -p 宿主ip:5001:80 -d netcorewebtests 建議用後面一個命令!
完成!
附上常用基礎命令: 1.查看已退出容器:docker ps -a 2.查看所有鏡像:docker images 3.刪除某個鏡像:docker rmi 鏡像ID 4.刪除某個容器:docker rm 容器ID 5.查看正在運行容器:docker ps

