開始使用 Visual Studio for Mac 中的 Docker
適用于:Visual Studio for Mac
Visual Studio
使用 Visual Studio for Mac,您可以輕鬆地建置、進行偵錯,以及執行容器化的 ASP.NET Core 應用程式並將它們發行至 Azure。
必要條件
安裝和設定
若要安裝 Docker,請檢閱安裝適用於 Mac 的 Docker Desktop,並遵循其中的資訊。
建立 ASP.NET Core Web 應用程式並新增 Docker 支援
- 移至 [ 提出 > 新方案] 以建立新的解決方案。
- 在 [.NET Core > 應用程式 ] 下,選擇 [Web 應用程式 ] 範本:
- 選取目標 Framework。 在此範例中,我們將使用 .NET Core 2.2:
- 輸入專案詳細資料,例如,名稱 (此範例中為 DockerDemo)。 所建立的專案包含建置和執行 ASP.NET Core 網站所需的所有基本項目。
- 在 [方案視窗] 中,以滑鼠右鍵按一下 DockerDemo 專案,然後選取 [ 新增 > Docker 支援]:
Visual Studio for Mac 會將稱為 docker-compose 的專案自動新增到解決方案,並將 Dockerfile 新增到您的現有專案。
Dockerfile 概觀
Dockerfile 是用於建立最終 Docker 映像的配方。 如需瞭解 Dockerfile 中的命令,請參閱 Dockerfile 參考 。
FROM mcr.microsoft.com/dotnet/core/aspnet:2.2-stretch-slim AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443
FROM mcr.microsoft.com/dotnet/core/sdk:2.2-stretch AS build
WORKDIR /src
COPY DockerDemo/DockerDemo.csproj DockerDemo/
RUN dotnet restore "DockerDemo/DockerDemo.csproj"
COPY . .
WORKDIR "/src/DockerDemo"
RUN dotnet build "DockerDemo.csproj" -c Release -o /app/build
FROM build AS publish
RUN dotnet publish "DockerDemo.csproj" -c Release -o /app/publish
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "DockerDemo.dll"]
上述的 Dockerfile 以 microsoft/aspnetcore 映像為基礎,其中包含藉由建置專案並將其新增至容器來修改基底映像的指示。
注意
由 Visual Studio for Mac 中建立的預設 Dockerfile 為 HTTP 流量公開連接埠 80。 若要啟用 HTTPS 流量,請將 Expose 443
新增至 Dockerfile。
偵錯
選取專案 docker-compose
作為啟動專案,然後開始偵錯 (執行 > 開始 偵錯) 。 這會在容器中建置、部署並啟動 ASP.NET 專案。
提示
在安裝 Docker Desktop 後第一次執行時,您可能會在進行偵錯時收到下列錯誤:Cannot start service dockerdemo: Mounts denied
請將 /usr/local/share/dotnet/sdk/NuGetFallbackFolder
新增到 Docker Desktop 中的 [File Sharing] \(檔案共用\) 索引標籤:
當組建完成時,應用程式會在 Safari 中啟動:
請注意,容器會接聽連接埠 (例如,http://localhost:32768
),而此連接埠可能會不同。
若要查看執行中容器的清單,請在 [終端機] 中使用 docker ps
命令。
請注意以下螢幕擷取畫面中的連接埠轉送 (在 PORTS 底下)。 此圖顯示容器正在接聽之前在 Safari 中所見的連接埠,並將要求轉送到內部 Webserver 的連接埠 80 (如 Dockerfile 中所定義) 上。 從應用程式的觀點來看,它在接聽連接埠 80: