在Docker中部署Asp.net core2.1以及修改发布
本篇文章主要是如何在Docker容器中運行ASP.NET Core應用程序,以及修改系統之后,發布更新。本文章采用自定義的Docker文件
系統要求:
1.服務器或本地已經安裝docker
一、創建一個Asp.Net Core 2.1 Web應用(若可以熟練創建項目,可忽略此節)
注意這里沒有勾選 “啟動Docker支持”
二、創建Docker文件
項目創建完成之后,在項目的根目錄下,添加一個Dockerfile文件,注意文件名。
在Dockerfile文件中,添加如下內容
| 12345678910111213 | # 添加基礎鏡像FROM microsoft/dotnet:2.1-aspnetcore-runtime#容器中系統的工作空間WORKDIR /app#拷貝當前文件夾下的文件到容器中系統的工作空間COPY . /app#設置Docker容器對外暴露的端口EXPOSE 80#容器中使用 ["dotnet","系統啟動的dll"] 來運行應用程序#使用ENTRYPOINT ["dotnet","系統啟動的dll"]#或使用 CMD ["dotnet","系統啟動的dll"]ENTRYPOINT ["dotnet",?"School.Web.dll"] |
修改Dockerfile文件屬性
?三、發布應用程序
注意在發布的設置,目標運行時為可移植,我曾經設置為winX64發現運行時啟動不起來的問題
四、發布應用程序到服務器上
? 使用FTP或其他工具,將應用程序上傳到服務器上。如,我使用FileZilla,將文件上傳到/home/ubuntu/work/project/csharp/school文件夾下。
五、創建鏡像
在應用程序的目錄下:/home/ubuntu/work/project/csharp/school(根據自己情況而定,也就是服務器上Dockerfile所在目錄),執行生成鏡像命令。
docker build -t school:1.0.0 .注意鏡像名稱后邊的?.? (school:1.0.0是標識鏡像名稱和版本信息)
此時將下載Asp.Net Core?2.1-aspnetcore-runtime 基礎鏡像,并運行Dockerfile中的后續指令
六、創建并啟動容器
docker run --name=school -d -p 8000:80 -v /home/ubuntu/work/project/csharp/school:/app school:1.0.0注意此處-v,將文件掛載到服務器宿主機上,便于后續更改時,可以直接重啟生效
當成功執行之后,會輸出school(容器名稱),這時候可以通過?docker ps -a?查看容器是否啟動正常。當容器狀態顯示為UP時,表示啟動成功。
在本地輸入服務器IP地址+8000端口,成功看到系統正常運行了。
七、應用程序更新及發布
項目正常啟動之后,嘗試修改項目的View頁面或Controller,然后重新發布之后,將更新上傳至服務器對應的項目文件夾(/home/ubuntu/work/project/csharp/school)。
執行命令,使項目更新:
docker restart school瀏覽器中刷新頁面查看更新
八、錯誤排查
1.當啟動容器是發現容器狀態為Exit時,通過命令:?docker logs school? 查看容器啟動中的錯誤。
2.可對照上述過程中的各個注意點一一排查。
相關文章:
ASP.NET Core 2.1 使用Docker運行
.NET Core使用skiasharp文字頭像生成方案(基于docker發布)
Docker容器中開始.NETCore之路
原文地址:https://www.cnblogs.com/kingkangstudy/p/9221041.html
.NET社區新聞,深度好文,歡迎訪問公眾號文章匯總 http://www.csharpkit.com
總結
以上是生活随笔為你收集整理的在Docker中部署Asp.net core2.1以及修改发布的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: .NET Core微服务之基于Ident
- 下一篇: 要用Identity Server 4