一、前言
本篇文章講解如何在Linux上使用Docker來部署ASP.NET Core應用程序。
二、
1、創建應用程序
使用ASP.NET Core創建一個MVC應用程序,並修改Home控制器Index視圖代碼:
@{ ViewData["Title"] = "Home Page"; } <div class="text-center"> @*<h1 class="display-4">Welcome</h1> <p>Learn about <a href="https://docs.microsoft.com/aspnet/core">building Web apps with ASP.NET Core</a>.</p>*@ <h1>使用Docker部署ASP.NET Core應用程序</h1> </div>
運行程序,輸出結果如下圖所示:
2、添加Dockerfile文件
由於我們要使用Docker進行部署,所以要添加Dockerfile文件,在項目上右鍵,選擇“添加”,然後選擇“Docker支持”,如圖所示:
我們是在Linux上進行部署,所以目標OS選擇Linux:
Dockerfile文件內容如下:
# 使用運行時鏡像 FROM mcr.microsoft.com/dotnet/aspnet:5.0-buster-slim # 設置工作目錄 WORKDIR /app # 把目錄下的內容都複製到當前目錄下 COPY . . # 暴露80端口 EXPOSE 80 # 設置容器編碼格式 ENV LANG C.UTF-8 # 設置時區,解決容器內時間和宿主機時間不一致問題 RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone # 運行鏡像入口命令和可執行文件名稱 ENTRYPOINT ["dotnet", "DockerDemo.dll"]
注意:添加了Dockerfile文件以後,裏面會自動添加一個文件內容,這裏沒有使用默認的Dockerfile文件的內容,Dockerfile文件的內容可以自己修改。
修改Dockerfile文件的屬性,修改爲始終複製:
3、發佈
最後,將應用程序進行發佈,這裏選擇發佈到文件夾:
發佈文件夾目錄可以自定義:
三、部署
將上面步驟發佈後的文件拷貝到遠程的Linux服務器上,然後進行部署。
1、構建鏡像
執行下面的命令,根據Dockerfile文件構建鏡像:
docker build -t dockerdemo .
如圖所示:
注意:最後的“.”不能省略。
默認情況下會找當前目錄下面的Dockerfile文件,我們也可以修改Dockerfile文件的名稱,構建鏡像的時候使用-f參數指定使用哪個Dockerfile文件即可,我們修改Dockerfile文件的名稱:
使用下面的命令構建鏡像:
docker build -t dockerdemotest -f Dockerfile-test .
如圖所示:
2、運行容器
使用下面的命令根據上面步驟構建的鏡像運行容器:
docker run --name=dockerdemo -d -p 5000:80 dockerdemo
如圖所示:
這樣就表示容器運行成功了,可以訪問了:
這樣一個簡單的部署就完成了。