Dockerize an ASP.NET Core application
阿新 • • 發佈:2022-03-31
原文: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
- 在您的專案資料夾中建立一個
Dockerfile
。 - 將以下文字新增到Linux或Windows容器的
Dockerfile
中。以下標籤是多體系結構的,這意味著它們會根據Docker Desktop for Windows中設定的模式拉入Windows或Linux容器。閱讀有關切換容器的更多資訊。 -
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"]
- 要使構建上下文儘可能小,請將
.dockerignore
檔案新增到專案資料夾,然後將以下內容複製到其中。
bin/
obj/
構建並執行Docker映像
- 開啟命令提示符,然後導航到您的專案資料夾。
- 使用以下命令來構建和執行您的Docker映像:
$ docker build -t aspnetapp。
$ docker run -d -p 8080:80 --name myapp aspnetapp
檢視從容器執行的網頁
- 轉到localhost:8080在Web瀏覽器中訪問您的應用程式。
- 如果您使用的是Nano Windows容器,但尚未更新至Windows Creator更新,則存在一個錯誤會影響
- 執行
docker inspect -f“ {{.NetworkSettings.Networks.nat.IPAddress}}” myapp
- 複製容器IP地址並貼上到瀏覽器中。 (例如
172.16.240.197
)
- 執行