1. 程式人生 > 其它 >Dockerize an ASP.NET Core application

Dockerize an ASP.NET Core application

原文:Dockerize an ASP.NET Core application

介紹

本示例演示瞭如何對ASP.NET Core應用程式進行容器化。

為什麼要構建ASP.NET Core?

  • 開源
  • 在Windows、MacOS和Linux上跨平臺開發和執行ASP.NET Core應用
  • 非常適合現代基於雲的應用程式,例如Web應用程式,IoT應用程式和移動後端
  • ASP.NET Core應用程式可以在.NET Core或完整的.NET Framework上執行
  • 旨在為部署到雲或本地執行的應用程式提供優化的開發框架
  • 具有最小開銷的模組化元件可在構建解決方案時保持靈活性

先決條件

本示例假定您的計算機上已經有一個ASP.NET Core應用程式。如果您不熟悉ASP.NET,則可以按照一個

簡單教程來初始化專案或克隆我們的ASP.NET Docker示例

為ASP.NET Core應用程式建立Dockerfile

  1. 在您的專案資料夾中建立一個Dockerfile
  2. 將以下文字新增到Linux或Windows容器Dockerfile中。以下標籤是多體系結構的,這意味著它們會根據Docker Desktop for Windows中設定的模式拉入Windows或Linux容器。閱讀有關切換容器的更多資訊。
  3. Dockerfile假定您的應用程式名為aspnetapp。將Dockerfile更改為使用專案的DLL檔案。
FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build-env
WORKDIR /app

# Copy csproj and restore as distinct layers
COPY *.csproj ./
RUN dotnet restore

# Copy everything else and build
COPY . ./
RUN dotnet publish -c Release -o out

# Build runtime image
FROM mcr.microsoft.com/dotnet/core/aspnet:3.1
WORKDIR /app
COPY --from=build-env /app/out .
ENTRYPOINT ["dotnet", "aspnetapp.dll"]
  1. 要使構建上下文儘可能小,請將.dockerignore檔案新增到專案資料夾,然後將以下內容複製到其中。
bin/
obj/

構建並執行Docker映像

  1. 開啟命令提示符,然後導航到您的專案資料夾。
  2. 使用以下命令來構建和執行您的Docker映像:
$ docker build -t aspnetapp。
$ docker run -d -p 8080:80 --name myapp aspnetapp

檢視從容器執行的網頁

  • 轉到localhost:8080在Web瀏覽器中訪問您的應用程式。
  • 如果您使用的是Nano Windows容器,但尚未更新至Windows Creator更新,則存在一個錯誤會影響
    Windows 10如何通過"NAT"
    (網路地址轉換)與容器進行對話。您必須直接點選容器的IP。您可以通過以下步驟獲取容器的IP地址:
    1. 執行
      docker inspect -f“ {{.NetworkSettings.Networks.nat.IPAddress}}” myapp
    2. 複製容器IP地址並貼上到瀏覽器中。 (例如172.16.240.197

進一步閱讀