Rychlý start: Docker v sadě Visual Studio

V sadě Visual Studio můžete snadno vytvářet, ladit a spouštět kontejnerizované aplikace .NET, ASP.NET a ASP.NET Core a publikovat je do služby Azure Container Registry, Docker Hubu, Aplikace Azure Service nebo vlastního container Registry. V tomto článku publikujeme aplikaci ASP.NET Core do služby Azure Container Registry.

Požadavky

Instalace a nastavení

Při instalaci Dockeru si nejprve projděte informace v Docker Desktopu pro Windows: Co je potřeba vědět před instalací. Dále nainstalujte Docker Desktop.

Přidání projektu do kontejneru Dockeru

  1. Vytvořte nový projekt pomocí šablony webové aplikace ASP.NET Core nebo pokud chcete místo .NET Core použít .NET Framework, zvolte ASP.NET webovou aplikaci (.NET Framework).

  2. Na obrazovce Vytvořit novou webovou aplikaci se ujistěte, že je zaškrtnuté políčko Povolit podporu Dockeru.

    Snímek obrazovky s zaškrtávacím políčka Povolit podporu Dockeru

    Snímek obrazovky ukazuje .NET Core; Pokud používáte rozhraní .NET Framework, vypadá trochu jinak.

  3. Vyberte požadovaný typ kontejneru (Windows nebo Linux) a klikněte na Vytvořit.

Přehled souboru Dockerfile

V projektu se vytvoří soubor Dockerfile, recept na vytvoření konečné image Dockeru. Informace o příkazech v souboru Dockerfile najdete v referenčních informacích k souboru Dockerfile:

FROM mcr.microsoft.com/dotnet/core/aspnet:3.1 AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443

FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build
WORKDIR /src
COPY ["WebApplication1/WebApplication1.csproj", "WebApplication1/"]
RUN dotnet restore "WebApplication1/WebApplication1.csproj"
COPY . .
WORKDIR "/src/WebApplication1"
RUN dotnet build "WebApplication1.csproj" -c Release -o /app/build

FROM build AS publish
RUN dotnet publish "WebApplication1.csproj" -c Release -o /app/publish

FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "WebApplication1.dll"]

Předchozí soubor Dockerfile je založený na imagi microsoft/aspnetcore a obsahuje pokyny k úpravě základní image sestavením projektu a jeho přidáním do kontejneru. Pokud používáte rozhraní .NET Framework, základní image se bude lišit.

Když je zaškrtnuté políčko Konfigurovat pro HTTPS nového projektu, soubor Dockerfile zveřejňuje dva porty. Jeden port se používá pro provoz HTTP; druhý port se používá pro HTTPS. Pokud políčko není zaškrtnuté, zobrazí se pro provoz HTTP jeden port (80).

Ladění

V rozevíracím seznamu ladění na panelu nástrojů vyberte Docker a spusťte ladění aplikace. Může se zobrazit zpráva s výzvou k důvěryhodnosti certifikátu; zvolte, že chcete certifikát důvěřovat, abyste mohli pokračovat.

Možnost Nástroje kontejneru v okně Výstup ukazuje, jaké akce se provádějí. První stažení základní image může chvíli trvat, ale při dalších spuštěních je mnohem rychlejší.

Poznámka:

Pokud potřebujete změnit porty pro ladění, můžete to udělat ve spouštěcím souboru Nastavení.json. Viz Nastavení spuštění kontejneru.

Okno Kontejnery

Pokud máte Visual Studio 2019 verze 16.4 nebo novější, můžete pomocí okna Kontejnery zobrazit spuštěné kontejnery na vašem počítači a také image, které máte k dispozici.

Otevřete okno Kontejnery pomocí vyhledávacího pole v integrovaném vývojovém prostředí (stisknutím kláves Ctrl+Q ho použijte), zadejte containera v seznamu zvolte okno Kontejnery.

Okno Kontejnery můžete připojit na vhodné místo, například pod editorem, jeho pohybem a sledováním vodítek umístění okna.

V okně vyhledejte kontejner a projděte si jednotlivé karty, abyste zobrazili proměnné prostředí, mapování portů, protokoly a systém souborů.

Snímek obrazovky s oknem Kontejnery

Další informace najdete v tématu Použití okna Kontejnery.

Publikování imagí Dockeru

Po dokončení cyklu vývoje a ladění aplikace můžete vytvořit produkční image aplikace.

  1. Změňte rozevírací seznam konfigurace na Vydání a sestavte aplikaci.

  2. Klikněte pravým tlačítkem na projekt v Průzkumník řešení a zvolte Publikovat.

  3. V dialogovém okně Publikovat vyberte kartu Docker Container Registry .

    Snímek obrazovky s dialogovým oknem Publikovat – zvolte Docker Container Registry.

  4. Zvolte Vytvořit nový registr kontejnerů Azure.

    Snímek obrazovky s dialogovým oknem Publikovat – zvolte Vytvořit nový registr kontejneru Azure.

  5. Vyplňte požadované hodnoty v části Vytvoření nového služby Azure Container Registry.

    Nastavení Navrhovaná hodnota Popis
    Předpona DNS Globálně jedinečný název Název, který jednoznačně identifikuje váš registr kontejneru.
    Předplatné Zvolte si předplatné. Předplatné Azure, které se má použít.
    Skupina prostředků myResourceGroup Název skupiny prostředků, ve které se má vytvořit registr kontejneru. Pokud chcete vytvořit novou skupinu prostředků, zvolte Nová.
    Skladová jednotka (SKU) Standard Úroveň služby registru kontejneru
    Umístění registru Umístění blízko vás Zvolte umístění v oblasti blízko vás nebo v blízkosti jiných služeb, které budou používat váš registr kontejneru.

    Snímek obrazovky s dialogovým oknem Pro vytvoření služby Azure Container Registry v sadě Visual Studio

  6. Klikněte na Vytvořit. V dialogovém okně Publikovat se teď zobrazuje vytvořený registr.

    Snímek obrazovky s dialogovým oknem Publikovat zobrazující vytvořenou službu Azure Container Registry

  7. Zvolením možnosti Dokončit dokončíte proces publikování image kontejneru do nově vytvořeného registru v Azure.

    Snímek obrazovky znázorňující úspěšné publikování

Další kroky

Teď můžete načíst kontejner z registru do libovolného hostitele, který dokáže spouštět image Dockeru, například Azure Container Instances.

V sadě Visual Studio můžete snadno vytvářet, ladit a spouštět kontejnerizované aplikace .NET, ASP.NET a ASP.NET Core a publikovat je do služby Azure Container Registry, Docker Hubu, Aplikace Azure Service nebo vlastního container Registry. V tomto článku publikujete aplikaci ASP.NET Core do služby Azure Container Registry.

Požadavky

Instalace a nastavení

Při instalaci Dockeru si nejprve projděte informace v Docker Desktopu pro Windows: Co je potřeba vědět před instalací. Dále nainstalujte Docker Desktop.

Přidání projektu do kontejneru Dockeru

  1. Před vytvořením projektu sady Visual Studio se ujistěte, že na Desktopu Dockeru běží typ kontejnerů (Windows nebo Linux), které chcete použít v projektu sady Visual Studio.

    Pokud chcete změnit typ kontejneru, který používá Docker Desktop, klikněte pravým tlačítkem myši na ikonu Dockeru (velryba) na hlavním panelu a zvolte Přepnout na kontejnery Linuxu nebo Přepnout na kontejnery Windows.

    Upozorňující

    Pokud po vytvoření projektu sady Visual Studio přepnete typ kontejneru, nemusí se načíst soubory imagí Dockeru.

  2. Vytvořte nový projekt pomocí šablony webové aplikace ASP.NET Core nebo pokud chcete místo .NET Core použít .NET Framework, zvolte ASP.NET webovou aplikaci (.NET Framework).

  3. Na obrazovce Vytvořit novou webovou aplikaci se ujistěte, že je zaškrtnuté políčko Povolit podporu Dockeru.

    Snímek obrazovky s zaškrtávacím políčka Povolit podporu Dockeru

    Snímek obrazovky ukazuje nejnovější verzi s .NET 8.0. Pokud používáte rozhraní .NET Framework, dialogové okno vypadá trochu jinak.

  4. Vyberte požadovaný typ kontejneru (Windows nebo Linux) a vyberte Vytvořit.

Přehled souboru Dockerfile

Visual Studio ve vašem projektu vytvoří soubor Dockerfile , který poskytuje recept na vytvoření konečné image Dockeru. Další informace najdete v referenčních informacích k souboru Dockerfile, kde najdete podrobnosti o příkazech použitých v souboru Dockerfile.

#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.

#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:8.0-nanoserver-1809 AS base
WORKDIR /app
EXPOSE 8080
EXPOSE 8081

FROM mcr.microsoft.com/dotnet/sdk:8.0-nanoserver-1809 AS build
ARG BUILD_CONFIGURATION=Release
WORKDIR /src
COPY ["MyWepApp/MyWebApp.csproj", "MyWebApp/"]
RUN dotnet restore "./MyWebApp/./MyWebApp.csproj"
COPY . .
WORKDIR "/src/MyWebApp"
RUN dotnet build "./MyWebApp.csproj" -c %BUILD_CONFIGURATION% -o /app/build

FROM build AS publish
ARG BUILD_CONFIGURATION=Release
RUN dotnet publish "./MyWebApp.csproj" -c %BUILD_CONFIGURATION% -o /app/publish /p:UseAppHost=false

FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "MyWebApp.dll"]

Předchozí soubor Dockerfile je založený na imagi .NET 8 .NET (Microsoft Container Registry) .NET 8 a obsahuje pokyny pro úpravu základní image sestavením projektu s názvem MyWebApp a jeho přidáním do kontejneru. Pokud používáte rozhraní .NET Framework, základní image se liší.

Když je zaškrtnuté políčko Konfigurovat pro HTTPS nového projektu, soubor Dockerfile zveřejňuje dva porty. Jeden port se používá pro provoz HTTP; druhý port se používá pro HTTPS. Pokud políčko není zaškrtnuté, zobrazí se pro provoz HTTP jeden port (80).

V sadě Visual Studio 2022 verze 17.7 nebo novější můžete cílit na .NET 8. V takovém případě máte výhodu, že budete moct aplikaci bezpečně spouštět jako normální uživatel, a ne se zvýšenými oprávněními. Výchozí soubor Dockerfile vygenerovaný sadou Visual Studio pro projekty .NET 8 je nakonfigurovaný tak, aby běžel jako normální uživatel. Pokud chcete toto chování povolit u existujícího projektu, přidejte řádek USER app do souboru Dockerfile v základní imagi. Vzhledem k tomu, že je port 80 omezený pro běžné uživatele, zveřejňuje porty 8080 a 8081 místo 80 a 443. Port 8080 se používá pro provoz HTTP a port 8081 se používá pro HTTPS. Pokud chcete spustit jako normálního uživatele, musí kontejner používat základní image .NET 8 a aplikace musí běžet jako aplikace .NET 8. Při správné konfiguraci by váš soubor Dockerfile měl obsahovat kód jako v následujícím příkladu:

FROM mcr.microsoft.com/dotnet/aspnet:8.0-preview AS base
USER app
WORKDIR /app
EXPOSE 8080
EXPOSE 8081

Ladění

V rozevíracím seznamu ladění na panelu nástrojů vyberte Docker a spusťte ladění aplikace. Může se zobrazit zpráva s výzvou k důvěryhodnosti certifikátu; zvolte, že chcete certifikát důvěřovat, abyste mohli pokračovat.

Možnost Nástroje kontejneru v okně Výstup ukazuje, jaké akce se provádějí. První stažení základní image může chvíli trvat, ale při dalších spuštěních je rychlejší.

Po dokončení sestavení se otevře prohlížeč a zobrazí domovskou stránku vaší aplikace. Na panelu Adresa prohlížeče uvidíte localhost adresu URL a číslo portu pro ladění.

Poznámka:

Pokud potřebujete změnit porty pro ladění, můžete to udělat v launchSettings.json souboru. Viz Nastavení spuštění kontejneru.

Okno Kontejnery

Okno Kontejnery můžete použít k zobrazení spuštěných kontejnerů na vašem počítači a dalších imagích, které máte k dispozici.

Otevřete okno Kontejnery pomocí vyhledávacího pole v integrovaném vývojovém prostředí (stisknutím kláves Ctrl+Q ho použijte), zadejte containera v seznamu zvolte okno Kontejnery.

Okno Kontejnery můžete připojit na vhodné místo, například pod editorem, jeho pohybem a sledováním vodítek umístění okna.

V okně vyhledejte kontejner a projděte si jednotlivé karty, abyste zobrazili proměnné prostředí, mapování portů, protokoly a systém souborů.

Snímek obrazovky s oknem Kontejnery

Další informace najdete v tématu Použití okna Kontejnery.

Publikování imagí Dockeru

Po dokončení cyklu vývoje a ladění aplikace můžete vytvořit produkční image aplikace.

  1. Změňte rozevírací seznam konfigurace na Vydání a sestavte aplikaci.

  2. Klikněte pravým tlačítkem na projekt v Průzkumník řešení a zvolte Publikovat.

  3. V dialogovém okně Publikovat vyberte kartu Docker Container Registry .

    Snímek obrazovky s dialogovým oknem Publikovat – zvolte Docker Container Registry.

  4. Zvolte Vytvořit nový registr kontejnerů Azure.

    Snímek obrazovky s dialogovým oknem Publikovat – zvolte Vytvořit nový registr kontejneru Azure.

  5. Vyplňte požadované hodnoty v části Vytvoření nového služby Azure Container Registry.

    Nastavení Navrhovaná hodnota Popis
    Předpona DNS Globálně jedinečný název Název, který jednoznačně identifikuje váš registr kontejneru.
    Předplatné Zvolte si předplatné. Předplatné Azure, které se má použít.
    Skupina prostředků myResourceGroup Název skupiny prostředků, ve které se má vytvořit registr kontejneru. Pokud chcete vytvořit novou skupinu prostředků, zvolte Nová.
    Skladová jednotka (SKU) Standard Úroveň služby registru kontejneru
    Umístění registru Umístění blízko vás Zvolte umístění v oblasti blízko vás nebo v blízkosti jiných služeb, které můžou používat registr kontejneru.

    Snímek obrazovky s dialogovým oknem Pro vytvoření služby Azure Container Registry v sadě Visual Studio

  6. Vyberte Vytvořit. V dialogovém okně Publikovat se teď zobrazuje vytvořený registr.

    Snímek obrazovky s dialogovým oknem Publikovat zobrazující vytvořenou službu Azure Container Registry

  7. Zvolením možnosti Dokončit dokončíte proces publikování image kontejneru do nově vytvořeného registru v Azure.

    Snímek obrazovky znázorňující úspěšné publikování

Další kroky

Teď můžete načíst kontejner z registru do libovolného hostitele, který dokáže spouštět image Dockeru, například Azure Container Instances.

Další materiály