Docker----在Docker中部署Asp.net core2.1以及修改發布


本篇文章主要是如何在Docker容器中運行ASP.NET Core應用程序,以及修改系統之后,發布更新。本文章采用自定義的Docker文件

系統要求

  1.服務器或本地已經安裝docker

一、創建一個Asp.Net Core 2.1 Web應用(若可以熟練創建項目,可忽略此節)

注意這里沒有勾選 “啟動Docker支持”

二、創建Docker文件

  項目創建完成之后,在項目的根目錄下,添加一個Dockerfile文件,注意文件名。

  在Dockerfile文件中,添加如下內容

# 添加基礎鏡像
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.可對照上述過程中的各個注意點一一排查。

 

 


免責聲明!

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



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