Linux上使用Docker部署ASP.NET?Core應(yīng)用程序
作者:.NET開發(fā)菜鳥
一、創(chuàng)建
1、創(chuàng)建應(yīng)用程序
使用ASP.NET Core創(chuàng)建一個(gè)MVC應(yīng)用程序,并修改Home控制器Index視圖代碼:
@{ ViewData["Title"] = "Home Page"; } <div class="text-center"> @*<h1 class="display-4">Welcome</h1> <p>Learn about <a rel="external nofollow" >building Web apps with ASP.NET Core</a>.</p>*@ <h1>使用Docker部署ASP.NET Core應(yīng)用程序</h1> </div>
運(yùn)行程序,輸出結(jié)果如下圖所示:
2、添加Dockerfile文件
由于我們要使用Docker進(jìn)行部署,所以要添加Dockerfile文件,在項(xiàng)目上右鍵,選擇“添加”,然后選擇“Docker支持”,如圖所示:
我們是在Linux上進(jìn)行部署,所以目標(biāo)OS選擇Linux:
Dockerfile文件內(nèi)容如下:
# 使用運(yùn)行時(shí)鏡像 FROM mcr.microsoft.com/dotnet/aspnet:5.0-buster-slim # 設(shè)置工作目錄 WORKDIR /app # 把目錄下的內(nèi)容都復(fù)制到當(dāng)前目錄下 COPY . . # 暴露80端口 EXPOSE 80 # 設(shè)置容器編碼格式 ENV LANG C.UTF-8 # 設(shè)置時(shí)區(qū),解決容器內(nèi)時(shí)間和宿主機(jī)時(shí)間不一致問題 RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone # 運(yùn)行鏡像入口命令和可執(zhí)行文件名稱 ENTRYPOINT ["dotnet", "DockerDemo.dll"]
注意:添加了Dockerfile文件以后,里面會(huì)自動(dòng)添加一個(gè)文件內(nèi)容,這里沒有使用默認(rèn)的Dockerfile文件的內(nèi)容,Dockerfile文件的內(nèi)容可以自己修改。
修改Dockerfile文件的屬性,修改為始終復(fù)制:
3、發(fā)布
最后,將應(yīng)用程序進(jìn)行發(fā)布,這里選擇發(fā)布到文件夾:
發(fā)布文件夾目錄可以自定義:
二、部署
將上面步驟發(fā)布后的文件拷貝到遠(yuǎn)程的Linux服務(wù)器上,然后進(jìn)行部署。
1、構(gòu)建鏡像
執(zhí)行下面的命令,根據(jù)Dockerfile文件構(gòu)建鏡像:
docker build -t dockerdemo .
如圖所示:
注意:最后的“.”不能省略。
默認(rèn)情況下會(huì)找當(dāng)前目錄下面的Dockerfile文件,我們也可以修改Dockerfile文件的名稱,構(gòu)建鏡像的時(shí)候使用-f參數(shù)指定使用哪個(gè)Dockerfile文件即可,我們修改Dockerfile文件的名稱:
使用下面的命令構(gòu)建鏡像:
docker build -t dockerdemotest -f Dockerfile-test .
如圖所示:
2、運(yùn)行容器
使用下面的命令根據(jù)上面步驟構(gòu)建的鏡像運(yùn)行容器:
docker run --name=dockerdemo -d -p 5000:80 dockerdemo
如圖所示:
這樣就表示容器運(yùn)行成功了,可以訪問了:
這樣一個(gè)簡單的部署就完成了。
到此這篇關(guān)于使用Docker部署ASP.NET Core應(yīng)用程序的文章就介紹到這了。希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。