asp.net core 發布到linux下Docker


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"來查看正在運行中的容器。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM