.NET 5 部署在docker上運行

一、建立站點

建立一個ASP.NET Core Web應用程序,選中啓用Docker支持。自動幫咱們建立一個Dockerfile文件。nginx

 

 

二、編寫Dockerfile文件

dockerfile是一個文件格式的配置文件,用戶可使用dockerfile來快速構建自定義的鏡像。由一行行命令語句組成,而且支持#開頭的註釋行。web

dockerfile主題內容通常分爲4部分docker

  1. 基礎鏡像信息瀏覽器

  2. 維護者信息使用label指令mvc

  3. 鏡像操做指令app

  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
## 設置工做目錄
#WORKDIR /app
#
## 複製發佈文件到/app下
#COPY . /app
#
## 設置端口
#EXPOSE 5005
EXPOSE 80
COPY . .
# 使用AA.Mvc.dll來運行ASP.NET Core項目,注意大小寫
#ENTRYPOINT ["dotnet", "AA.Mvc.dll", "--server.urls", "http://*:5005"]
ENTRYPOINT ["dotnet", "AA.Mvc.dll"]

dockerfile文件指令說明:ui

  • FROM -指定所建立鏡像的基礎鏡像this

  • WORKDIR-配置工做目錄url

  • EXPOSE-聲明鏡像內服務監聽的端口

  • COPY-複製內容到鏡像

  • ENTRYPOINT-啓動鏡像的默認人口命令

三、編譯發佈web項目

 

 

 

 

 

 

四、構建鏡像,運行容器並瀏覽

 建立鏡像,可使用命令docker build,以下所示:





docker build -t core-mvc .

 

 

這步可能會慢一些,由於須要下載運行環境,請耐心等待

 

 

參數分解:

  • -t ---指定鏡像名稱

  • 命令結尾處 . ---表示build上下文爲當前目錄,默認狀況下docker會使用在上下文的根目錄下找到Dockerfile文件

查看鏡像列表,輸入一下命令



docker images

 

 

 

建立並啓動、查看容器




docker run --name netcore-mvc -d -p 50879:80 core-mvc
docker ps -a

 

 

 參數說明

  • -d ,表示在後臺以守護態(daemonized)形式運行容器

  • -p 外部端口與內部容器端口映射。

  • --name 指定容器的名稱。固然能夠不指定,默認會爲咱們建立

這裏若是docker run失敗後再次運行會提示名稱已存在,可使用如下命令來刪除容器

docker rm -f netcore-mvc

最後一個參數 core-mvc 就是咱們剛建立的鏡像名稱,通過以上4個步驟,在瀏覽器中輸入地址http://localhost:50879/查看如圖

 

 

 

至此一個完整的項目以手工的方式運行在docker容器中。  

相關文章
相關標籤/搜索