1、創(chuàng)建站點(diǎn)創(chuàng)建一個(gè)ASP.NET Core Web應(yīng)用程序,選中啟用Docker支持。自動(dòng)幫我們創(chuàng)建一個(gè)Dockerfile文件。
2、編寫Dockerfile文件dockerfile是一個(gè)文件格式的配置文件,用戶可以使用dockerfile來(lái)快速構(gòu)建自定義的鏡像。由一行行命令語(yǔ)句組成,并且支持#開頭的注釋行。 dockerfile主題內(nèi)容一般分為4部分
#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)目,注意大小寫 #ENTRYPOINT ["dotnet", "AA.Mvc.dll", "--server.urls", "http://*:5005"] ENTRYPOINT ["dotnet", "AA.Mvc.dll"] dockerfile文件指令說(shuō)明:
3、編譯發(fā)布web項(xiàng)目
4、構(gòu)建鏡像,運(yùn)行容器并瀏覽創(chuàng)建鏡像,可以使用命令docker build,如下所示:
這步可能會(huì)慢一些,因?yàn)樾枰螺d運(yùn)行環(huán)境,請(qǐng)耐心等待
參數(shù)分解:
查看鏡像列表,輸入一下命令
創(chuàng)建并啟動(dòng)、查看容器
參數(shù)說(shuō)明
這里如果docker run失敗后再次運(yùn)行會(huì)提示名稱已存在,可以使用以下命令來(lái)刪除容器
最后一個(gè)參數(shù) core-mvc 就是我們剛創(chuàng)建的鏡像名稱,經(jīng)過以上4個(gè)步驟,在瀏覽器中輸入地址http://localhost:50879/查看如圖
至此一個(gè)完整的項(xiàng)目以手工的方式運(yùn)行在docker容器中。 |
|
來(lái)自: python_lover > 《待分類》