.NET 5 部署在docker上運(yùn)行的方法
1、創(chuàng)建站點(diǎn)
創(chuàng)建一個(gè)ASP.NET Core Web應(yīng)用程序,選中啟用Docker支持。自動(dòng)幫我們創(chuàng)建一個(gè)Dockerfile文件。
2、編寫(xiě)Dockerfile文件
dockerfile是一個(gè)文件格式的配置文件,用戶可以使用dockerfile來(lái)快速構(gòu)建自定義的鏡像。由一行行命令語(yǔ)句組成,并且支持#開(kāi)頭的注釋行。
dockerfile主題內(nèi)容一般分為4部分
- 基礎(chǔ)鏡像信息
- 維護(hù)者信息使用label指令
- 鏡像操作指令
- 容器啟動(dòng)時(shí)執(zhí)行指令
#See https://aka.ms/containerfastmode to understand how Visual Studio uses this Dockerfile to build your images for faster debugging. #Depending on the operating system of the host machines(s) that will build or run the containers, the image specified in the FROM statement may need to be changed. #For more information, please see https://aka.ms/containercompat #FROM mcr.microsoft.com/dotnet/aspnet:5.0 AS base #WORKDIR /app #EXPOSE 80 #EXPOSE 443 # #FROM mcr.microsoft.com/dotnet/sdk:5.0 AS build #WORKDIR /src #COPY ["AA.Mvc/AA.Mvc.csproj", "AA.Mvc/"] #RUN dotnet restore "AA.Mvc/AA.Mvc.csproj" #COPY . . #WORKDIR "/src/AA.Mvc" #RUN dotnet build "AA.Mvc.csproj" -c Release -o /app/build # #FROM build AS publish #RUN dotnet publish "AA.Mvc.csproj" -c Release -o /app/publish # #FROM base AS final #WORKDIR /app #COPY --from=publish /app/publish . #ENTRYPOINT ["dotnet", "AA.Mvc.dll"] # 父鏡像 #FROM microsoft/aspnetcore:5.0 #FROM mcr.microsoft.com/dotnet/core/aspnet:3.0-buster-slim AS baseWORKDIR /app FROM mcr.microsoft.com/dotnet/aspnet:5.0 AS base ## 設(shè)置工作目錄 #WORKDIR /app # ## 復(fù)制發(fā)布文件到/app下 #COPY . /app # ## 設(shè)置端口 #EXPOSE 5005 EXPOSE 80 COPY . . # 使用AA.Mvc.dll來(lái)運(yùn)行ASP.NET Core項(xiàng)目,注意大小寫(xiě) #ENTRYPOINT ["dotnet", "AA.Mvc.dll", "--server.urls", "http://*:5005"] ENTRYPOINT ["dotnet", "AA.Mvc.dll"]
dockerfile文件指令說(shuō)明:
- FROM -指定所創(chuàng)建鏡像的基礎(chǔ)鏡像
- WORKDIR-配置工作目錄
- EXPOSE-聲明鏡像內(nèi)服務(wù)監(jiān)聽(tīng)的端口
- COPY-復(fù)制內(nèi)容到鏡像
- ENTRYPOINT-啟動(dòng)鏡像的默認(rèn)人口命令
3、編譯發(fā)布web項(xiàng)目
4、構(gòu)建鏡像,運(yùn)行容器并瀏覽
創(chuàng)建鏡像,可以使用命令docker build,如下所示:
docker build -t core-mvc .
這步可能會(huì)慢一些,因?yàn)樾枰螺d運(yùn)行環(huán)境,請(qǐng)耐心等待
參數(shù)分解:
- -t ---指定鏡像名稱
- 命令結(jié)尾處.---表示build上下文為當(dāng)前目錄,默認(rèn)情況下docker會(huì)使用在上下文的根目錄下找到Dockerfile文件
查看鏡像列表,輸入一下命令
docker images
創(chuàng)建并啟動(dòng)、查看容器
docker run --name netcore-mvc -d -p 50879:80 core-mvc docker ps -a
參數(shù)說(shuō)明
- -d ,表示在后臺(tái)以守護(hù)態(tài)(daemonized)形式運(yùn)行容器
- -p 外部端口與內(nèi)部容器端口映射。
- --name 指定容器的名稱。當(dāng)然可以不指定,默認(rèn)會(huì)為我們創(chuàng)建
這里如果docker run失敗后再次運(yùn)行會(huì)提示名稱已存在,可以使用以下命令來(lái)刪除容器
docker rm -f netcore-mvc
最后一個(gè)參數(shù) core-mvc 就是我們剛創(chuàng)建的鏡像名稱,經(jīng)過(guò)以上4個(gè)步驟,在瀏覽器中輸入地址http://localhost:50879/查看如圖
至此一個(gè)完整的項(xiàng)目以手工的方式運(yùn)行在docker容器中。
到此這篇關(guān)于.NET 5 部署在docker上運(yùn)行的方法的文章就介紹到這了,更多相關(guān).NET 5 部署docker運(yùn)行內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Linux系統(tǒng)Docker 部署 ASP.NET Core應(yīng)用的流程分析
- 部署.Net6項(xiàng)目到docker
- Docker部署Mysql,.Net6,Sqlserver等容器
- ASP.NET Core開(kāi)發(fā)Docker部署
- .Net?Core部署Docker容器
- 使用Docker部署ASP.NET?Core程序
- .Net項(xiàng)目在Docker容器中開(kāi)發(fā)部署
- .NET?6?從0到1使用Docker部署至Linux環(huán)境超詳細(xì)教程
- Linux系統(tǒng)docker部署.net?core3.1的詳細(xì)步驟
- .NET?8?部署到?Docker的詳細(xì)過(guò)程
- .Net8項(xiàng)目使用docker、docker-compose部署的圖文步驟
相關(guān)文章
.NET下通過(guò)HttpListener實(shí)現(xiàn)簡(jiǎn)單的Http服務(wù)
這篇文章主要為大家詳細(xì)介紹了.NET下通過(guò)HttpListener實(shí)現(xiàn)簡(jiǎn)單Http服務(wù)的相關(guān)資料,感興趣的小伙伴們可以參考一下2016-09-09asp.net中virtual和abstract的區(qū)別分析
這篇文章主要介紹了asp.net中virtual和abstract的區(qū)別,較為詳細(xì)的分析了virtual與abstract的概念與具體用法,并以實(shí)例的形式予以總結(jié)歸納,需要的朋友可以參考下2014-10-10asp.net動(dòng)態(tài)獲取Excel表名的函數(shù)代碼
asp.net動(dòng)態(tài)獲取Excel表名的函數(shù)代碼,需要的朋友可以參考下。2011-02-02asp.net模板引擎Razor中cacheName的問(wèn)題分析
這篇文章主要介紹了asp.net模板引擎Razor中cacheName的問(wèn)題,實(shí)例分析了cacheName在提高編譯效率方面的使用技巧,需要的朋友可以參考下2015-06-06.Net Core使用Socket與樹(shù)莓派進(jìn)行通信詳解
這篇文章主要為大家詳細(xì)介紹了.Net Core使用Socket與樹(shù)莓派進(jìn)行通信,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-09-09