在Docker中部署Asp.net core2.1以及修改釋出
本篇文章主要是如何在Docker容器中執行ASP.NET Core應用程式,以及修改系統之後,釋出更新。本文章採用自定義的Docker檔案
系統要求:
1.伺服器或本地已經安裝docker
一、建立一個Asp.Net Core 2.1 Web應用(若可以熟練建立專案,可忽略此節)
注意這裡沒有勾選 “啟動Docker支援”
二、建立Docker檔案
專案建立完成之後,在專案的根目錄下,新增一個Dockerfile檔案,注意檔名。
在Dockerfile檔案中,新增如下內容
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
修改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.可對照上述過程中的各個注意點一一排查。