Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Podporu kontejnerů Dockeru můžete přidat v podporovaných typech projektů sady Visual Studio, jako jsou ASP.NET webové projekty a další. Informace o podporovaných typech projektů ve vaší verzi sady Visual Studio najdete v přehledu .
Podporu kontejnerů Dockeru nebo Podman můžete přidat v podporovaných typech projektů sady Visual Studio, jako jsou ASP.NET webové projekty a další. Informace o podporovaných typech projektů ve vaší verzi sady Visual Studio najdete v přehledu .
Požadavky
- Docker Desktop
- Visual Studio 2019 nebo novější s nainstalovanou úlohou vývoje pro ASP.NET a web, úlohou vývoje pro Azure nebo .NET Core pro různé platformy
- Vývojové nástroje .NET Core pro vývoj s .NET Core
- K publikování do služby Azure Container Registry je potřeba mít předplatné Azure. Zaregistrujte se k bezplatné zkušební verzi.
Požadavky
- Docker Desktop
- Visual Studio s nainstalovanou úlohou vývoje pro ASP.NET a webový vývoj, úlohou vývoje pro Azure a/nebo úlohou vývoje pomocí .NET pro desktop.
- K publikování do služby Azure Container Registry je potřeba mít předplatné Azure. Zaregistrujte se k bezplatné zkušební verzi.
Požadavky
- Docker Desktop nebo Podman Desktop.
- Visual Studio nebo podpora pro Podman, Visual Studio 2026 s nainstalovanou úlohou vývoje pro ASP.NET a web, úlohou vývoje pro Azure a/nebo vývojovou úlohou desktopových aplikací .NET .
- K publikování do služby Azure Container Registry je potřeba mít předplatné Azure. Zaregistrujte se k bezplatné zkušební verzi.
Přidání podpory kontejneru při vytváření projektu
Podporu kontejnerů můžete povolit při vytváření projektu tak, že při vytváření nového projektu vyberete Povolit podporu Dockeru , jak je znázorněno na následujícím snímku obrazovky:
Podporu kontejnerů můžete povolit při vytváření projektu tak, že při vytváření nového projektu vyberete Povolit podporu kontejneru , jak je znázorněno na následujícím snímku obrazovky:
Poznámka:
Pro projekty .NET Framework (nikoli .NET Core) jsou k dispozici pouze kontejnery Windows.
Poznámka:
Při vytváření projektu konzoly .NET Framework nebo .NET Core není k dispozici žádná možnost přidat podporu Dockeru. Po vytvoření projektu konzolové aplikace .NET Core je k dispozici možnost přidat podporu Dockeru . Projekty konzolových aplikací rozhraní .NET Framework nepodporují možnost Přidat podporu Dockeru po vytvoření projektu. Po vytvoření podporují projekty konzoly .NET Framework nebo .NET Core možnost Přidat podporu orchestrátoru kontejnerů pomocí Service Fabric nebo Docker Compose.
Poznámka:
Pokud používáte úplnou šablonu projektu konzoly .NET Framework, podporovanou možností je přidat podporu nástroje Container Orchestrator po vytvoření projektu s možnostmi použití Service Fabric nebo Docker Compose. Přidání podpory při vytváření projektu a přidání podpory Dockeru pro jeden projekt bez orchestrace nejsou dostupné možnosti.
Poznámka:
Podpora kontejnerů rozhraní .NET Framework je ukončena v aktuální verzi sady Visual Studio. Kontejnery rozhraní .NET Framework byly podporovány až do sady Visual Studio 2022 17.14.
Přidání podpory kontejneru do existujícího projektu
Podporu Dockeru můžete přidat do existujícího projektu tak, že v Průzkumníku řešení vyberete >podporu Dockeru. Příkazy > Add Docker Support a > Add Container Orchestrator Support se nacházejí v kontextové (místní) nabídce uzlu projektu pro projekt ASP.NET Core v Průzkumníku řešení, jak je znázorněno na následujícím snímku obrazovky.
Podporu Dockeru můžete přidat do existujícího projektu výběrem možnosti Přidat>podporu kontejneru v Průzkumníku řešení. Příkazy Přidat > podporu kontejnerů a Přidat > podporu orchestrátoru kontejnerů se nacházejí v místní nabídce uzlu projektu ASP.NET Core v Průzkumníku řešení, jak je znázorněno na následujícím snímku obrazovky.
Přidání podpory Dockeru
Když přidáte nebo povolíte podporu Dockeru, Visual Studio do projektu přidá následující:
- soubor Dockerfile
-
.dockerignoresoubor - Odkaz na balíček NuGet na Microsoft.VisualStudio.Azure.Containers.Tools.Targets
Soubor Dockerfile, který přidáte, se podobá následujícímu kódu. V tomto příkladu byl projekt pojmenován WebApplication-Dockera zvolili jste kontejnery Linuxu:
#See https://aka.ms/containerfastmode to understand how Visual Studio uses this Dockerfile to build your images for faster debugging.
FROM mcr.microsoft.com/dotnet/aspnet:3.1 AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443
FROM mcr.microsoft.com/dotnet/sdk:3.1 AS build
WORKDIR /src
COPY ["WebApplication-Docker/WebApplication-Docker.csproj", "WebApplication-Docker/"]
RUN dotnet restore "WebApplication-Docker/WebApplication-Docker.csproj"
COPY . .
WORKDIR "/src/WebApplication-Docker"
RUN dotnet build "WebApplication-Docker.csproj" -c Release -o /app/build
FROM build AS publish
RUN dotnet publish "WebApplication-Docker.csproj" -c Release -o /app/publish
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "WebApplication-Docker.dll"]
Volba typu sestavení kontejneru a dalších možností
Když do projektu .NET 7 nebo novějšího přidáte nebo povolíte podporu kontejneru, visual Studio zobrazí dialogové okno Možnosti generování kontejneru , které vám dává výběr operačního systému (Linux nebo Windows), ale také možnost zvolit typ sestavení kontejneru, a to buď Dockerfile nebo .NET SDK.
Můžete také zadat distribuci imagí kontejneru a kontext sestavení kontejneru.
Distribuce obrazu kontejneru určuje, který obraz operačního systému vaše kontejnery používají jako základní obraz. Tento seznam se změní, pokud jako typ kontejneru přepnete mezi Linuxem a Windows.
K dispozici jsou následující obrázky:
Windows:
- Windows Nano Server (doporučeno, dostupné pouze od verze 8.0 a novější, není přednastaveno pro projekty Nativního nasazení AOT (Ahead-of-time))
- Windows Server Core (k dispozici pouze 8.0 a novější)
Linux:
- Výchozí (Debian, ale značka odpovídá vaší cílové verzi .NET)
- Debian
- Ubuntu
- Chiseled Ubuntu
- Alpský
Poznámka:
Kontejnery založené na image Chiseled Ubuntu, které používají nasazení Native Ahead-of-time (AOT), lze ladit pouze v rychlém režimu. Podívejte se na Přizpůsobení kontejnerů Dockeru ve Visual Studiu.
Kontext sestavení kontejneru určuje složku, která se používá pro docker build (nebo podman build). Viz kontext sestavení Dockeru nebo sestavení Podman. Výchozí je složka řešení, která se doporučuje. Všechny soubory potřebné pro sestavení musí být v této složce, což není případ, pokud zvolíte složku projektu nebo jinou složku.
Typ sestavení kontejneru Dockerfile
Pokud zvolíte typ sestavení kontejneru Dockerfile , Visual Studio do projektu přidá následující:
- soubor Dockerfile
-
.dockerignoresoubor - Odkaz na balíček NuGet na Microsoft.VisualStudio.Azure.Containers.Tools.Targets
Soubor Dockerfile, který přidáte, bude vypadat podobně jako následující kód. V tomto příkladu byl projekt pojmenován WebApplication-Dockera zvolili jste kontejnery Linuxu:
# See https://aka.ms/customizecontainer to learn how to customize your debug container and how Visual Studio uses this Dockerfile to build your images for faster debugging.
# This stage is used when running from VS in fast mode (Default for Debug configuration)
FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base
USER $APP_UID
WORKDIR /app
EXPOSE 8080
EXPOSE 8081
# This stage is used to build the service project
FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
ARG BUILD_CONFIGURATION=Release
WORKDIR /src
COPY ["WebApplication15-AddContainerSupport/WebApplication15-AddContainerSupport.csproj", "WebApplication15-AddContainerSupport/"]
RUN dotnet restore "./WebApplication15-AddContainerSupport/WebApplication15-AddContainerSupport.csproj"
COPY . .
WORKDIR "/src/WebApplication15-AddContainerSupport"
RUN dotnet build "./WebApplication15-AddContainerSupport.csproj" -c $BUILD_CONFIGURATION -o /app/build
# This stage is used to publish the service project to be copied to the final stage
FROM build AS publish
ARG BUILD_CONFIGURATION=Release
RUN dotnet publish "./WebApplication15-AddContainerSupport.csproj" -c $BUILD_CONFIGURATION -o /app/publish /p:UseAppHost=false
# This stage is used in production or when running from VS in regular mode (Default when not using the Debug configuration)
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "WebApplication15-AddContainerSupport.dll"]
Typ sestavení kontejneru sady .NET SDK
Pro sestavení kontejnerů můžete použít integrovanou podporu sady .NET SDK, což znamená, že nepotřebujete soubor Dockerfile. viz Kontejnerizace aplikace .NET s publikováním dotnet. Místo toho nakonfigurujete kontejnery pomocí vlastností NÁSTROJE MSBuild v souboru projektu a nastavení pro spuštění kontejnerů pomocí sady Visual Studio se zakóduje do konfiguračního .json souboru launchSettings.json.
V této části zvolte jako typ sestavení kontejneru sadu .NET SDK , abyste místo souboru Dockerfile používali správu kontejnerů sady .NET SDK.
Distribuce obrazu kontejneru určuje, který obraz operačního systému vaše kontejnery používají jako základní obraz. Tento seznam se změní, pokud jako kontejner přepnete mezi Linuxem a Windows. Seznam dostupných imagí najdete v předchozí části.
Položka sestavení kontejneru .NET SDK v launchSettings.json vypadá jako následující kód:
"Container (.NET SDK)": {
"commandName": "SdkContainer",
"launchBrowser": true,
"launchUrl": "{Scheme}://{ServiceHost}:{ServicePort}",
"environmentVariables": {
"ASPNETCORE_HTTPS_PORTS": "8081",
"ASPNETCORE_HTTP_PORTS": "8080"
},
"publishAllPorts": true,
"useSSL": true
}
Sada .NET SDK spravuje některá nastavení, která by byla zakódována v souboru Dockerfile, jako je základní image kontejneru, a proměnné prostředí, které se mají nastavit. Nastavení dostupná v souboru projektu pro konfiguraci kontejneru jsou uvedená v části Přizpůsobení kontejneru. Například kontejnerový obraz distribuce je uložen v souboru projektu jako ContainerBaseImage vlastnost. Soubor projektu můžete později změnit úpravou souboru projektu.
<PropertyGroup>
<ContainerBaseImage>mcr.microsoft.com/dotnet/runtime:8.0-alpine-amd64</ContainerBaseImage>
</PropertyGroup>
Volba typu sestavení kontejneru a dalších možností
Když do projektu .NET 7 nebo novějšího přidáte nebo povolíte podporu Dockeru, sada Visual Studio zobrazí dialogové okno Možnosti generování uživatelského rozhraní kontejneru , které vám umožní zvolit operační systém (Linux nebo Windows), ale také možnost zvolit typ sestavení kontejneru, buď Dockerfile , nebo sadu .NET SDK. Toto dialogové okno se nezobrazuje v projektech rozhraní .NET Framework.
V 17.11 a novějších verzích můžete také zadat distribuci image kontejneru a kontext sestavení Dockeru.
Distribuce obrazu kontejneru určuje, který obraz operačního systému vaše kontejnery používají jako základní obraz. Tento seznam se změní, pokud jako typ kontejneru přepnete mezi Linuxem a Windows.
K dispozici jsou následující obrázky:
Windows:
- Windows Nano Server (doporučeno, dostupné pouze od verze 8.0 a novější, není přednastaveno pro projekty Nativního nasazení AOT (Ahead-of-time))
- Windows Server Core (k dispozici pouze 8.0 a novější)
Linux:
- Výchozí (Debian, ale značka je 8,0)
- Debian
- Ubuntu
- Chiseled Ubuntu
- Alpský
Poznámka:
Kontejnery založené na image Chiseled Ubuntu, které používají nasazení Native Ahead-of-time (AOT), lze ladit pouze v rychlém režimu. Podívejte se na Přizpůsobení kontejnerů Dockeru ve Visual Studiu.
Kontext sestavení Dockeru určuje složku, která se používá pro sestavení Dockeru. Viz kontext sestavení Dockeru. Výchozí je složka řešení, která se doporučuje. Všechny soubory potřebné pro sestavení musí být v této složce, což není případ, pokud zvolíte složku projektu nebo jinou složku.
Typ sestavení kontejneru Dockerfile
Pokud zvolíte typ sestavení kontejneru Dockerfile , Visual Studio do projektu přidá následující:
- soubor Dockerfile
-
.dockerignoresoubor - Odkaz na balíček NuGet na Microsoft.VisualStudio.Azure.Containers.Tools.Targets
Soubor Dockerfile, který přidáte, bude vypadat podobně jako následující kód. V tomto příkladu byl projekt pojmenován WebApplication-Dockera zvolili jste kontejnery Linuxu:
#See https://aka.ms/containerfastmode to understand how Visual Studio uses this Dockerfile to build your images for faster debugging.
FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base
USER $APP_UID
WORKDIR /app
EXPOSE 8080
EXPOSE 8081
FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
WORKDIR /src
COPY ["WebApplication-Docker/WebApplication-Docker.csproj", "WebApplication-Docker/"]
RUN dotnet restore "WebApplication-Docker/WebApplication-Docker.csproj"
COPY . .
WORKDIR "/src/WebApplication-Docker"
RUN dotnet build "WebApplication-Docker.csproj" -c Release -o /app/build
FROM build AS publish
RUN dotnet publish "WebApplication-Docker.csproj" -c Release -o /app/publish
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "WebApplication-Docker.dll"]
Typ sestavení kontejneru sady .NET SDK
S nainstalovanou sadou Visual Studio 2022 17.9 a novější se sadou .NET 7 SDK v projektech ASP.NET Core, které cílí na .NET 6 nebo novější, máte možnost použít integrovanou podporu sady .NET SDK pro sestavení kontejnerů, což znamená, že nepotřebujete soubor Dockerfile; viz Kontejnerizace aplikace .NET s publikováním dotnet. Místo toho nakonfigurujete kontejnery pomocí vlastností NÁSTROJE MSBuild v souboru projektu a nastavení pro spuštění kontejnerů pomocí sady Visual Studio se zakóduje do konfiguračního .json souboru launchSettings.json.
V této části zvolte jako typ sestavení kontejneru sadu .NET SDK , abyste místo souboru Dockerfile používali správu kontejnerů sady .NET SDK.
Distribuce obrazu kontejneru určuje, který obraz operačního systému vaše kontejnery používají jako základní obraz. Tento seznam se změní, pokud jako kontejner přepnete mezi Linuxem a Windows. Seznam dostupných imagí najdete v předchozí části.
Položka sestavení kontejneru .NET SDK v launchSettings.json vypadá jako následující kód:
"Container (.NET SDK)": {
"commandName": "SdkContainer",
"launchBrowser": true,
"launchUrl": "{Scheme}://{ServiceHost}:{ServicePort}",
"environmentVariables": {
"ASPNETCORE_HTTPS_PORTS": "8081",
"ASPNETCORE_HTTP_PORTS": "8080"
},
"publishAllPorts": true,
"useSSL": true
}
Sada .NET SDK spravuje některá nastavení, která by byla zakódována v souboru Dockerfile, jako je základní image kontejneru, a proměnné prostředí, které se mají nastavit. Nastavení dostupná v souboru projektu pro konfiguraci kontejneru jsou uvedená v části Přizpůsobení kontejneru. Například kontejnerový obraz distribuce je uložen v souboru projektu jako ContainerBaseImage vlastnost. Soubor projektu můžete později změnit úpravou souboru projektu.
<PropertyGroup>
<ContainerBaseImage>mcr.microsoft.com/dotnet/runtime:8.0-alpine-amd64</ContainerBaseImage>
</PropertyGroup>
Další kroky
Další podrobnosti o implementaci služeb a použití nástrojů sady Visual Studio pro práci s kontejnery najdete v následujících článcích:
Ladění aplikací v místním kontejneru
Nasazení kontejneru ASP.NET do registru kontejneru pomocí sady Visual Studio
Nasazení do Azure Container Apps pomocí sady Visual Studio