1.linux Docker 安裝
內核升級:https://www.cnblogs.com/zksfyz/p/7919425.html
安裝: https://www.runoob.com/docker/centos-docker-install.html
2.發布asp.net core
網上大部分教程都是采用編寫Dockerfile文件的方法,然后打包程序到一個新鏡像中,而我不用這種方法。我這里直接通過docker運行本地程序。
1、拉取鏡像文件
拉取微軟官方aspcore runtime鏡像文件,執行“docker pull microsoft/dotnet:aspnetcore-runtime”,注意這里使用的是帶“aspnetcore-runtime”TAG的鏡像,這個鏡像才有runtime。如果需要拉取特定的版本,比如2.1版本,可以用“docker pull microsoft/dotnet:2.1-aspnetcore-runtime”這樣的寫法,更多說明見https://hub.docker.com/r/microsoft/dotnet
拉取成功后通過“docker images”來查看
2、發布程序
注意部署模式改為“框架依賴”,目標運行時改為“可移植”。發布成功后將文件拷貝到服務器上,比如我放在“/home/www”下面。
最后執行“docker run -d -p 5000:80 -v /home/www:/app --workdir /app microsoft/dotnet:aspnetcore-runtime dotnet /app/MyServer.dll”,服務器就能跑起來了!
-d參數表示容器在后台運行,我們不需要進入到容器。
-p參數表示端口映射,“-p 5000:80”表示將容器的80端口映射到本地5000端口。
-v參數表示目錄映射,將服務器的/home/www目錄掛到容器的/app目錄。
--workdir參數表示容器中服務程序的工作路徑,也就是我們映射的/app目錄。
“microsoft/dotnet:aspnetcore-runtime”表示要運行的鏡像。
最后的"dotnet /app/MyServer.dll"表示容器啟動后要執行的命令,這里也就是啟動服務程序了,MyServer.dll是我的主程序文件名,你們修改為自己的即可。
最后可以通過"docker ps"來查看正在運行中的容器。