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
- Docker Desktop
- Visual Studio 2019 s nainstalovanou úlohou Vývoj webu, Azure Tools a/nebo .NET Core pro různé platformy
- Vývojové nástroje .NET Core pro vývoj s využitím .NET Core
- Pokud chcete publikovat do služby Azure Container Registry, předplatné Azure. Zaregistrujte si bezplatnou zkušební verzi.
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
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).
Na obrazovce Vytvořit novou webovou aplikaci se ujistěte, že je zaškrtnuté políčko Povolit podporu Dockeru.
Snímek obrazovky ukazuje .NET Core; Pokud používáte rozhraní .NET Framework, vypadá trochu jinak.
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 dotnet/core/aspnet 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 v souboru launchSettings.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 container
a 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ů.
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.
Změňte rozevírací seznam konfigurace na Vydání a sestavte aplikaci.
Klikněte pravým tlačítkem na projekt v Průzkumník řešení a zvolte Publikovat.
V dialogovém okně Publikovat vyberte kartu Docker Container Registry .
Zvolte Vytvořit nový registr kontejnerů Azure.
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. Klikněte na Vytvořit. V dialogovém okně Publikovat se teď zobrazuje vytvořený registr.
Zvolením možnosti Dokončit dokončíte proces publikování image kontejneru do nově vytvořeného registru v Azure.
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
- Docker Desktop
- Visual Studio 2022 s nainstalovanou úlohou Vývoj webu, Azure Tools a/nebo .NET desktopový vývoj
- Pokud chcete publikovat do služby Azure Container Registry, předplatné Azure. Zaregistrujte si bezplatnou zkušební verzi.
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
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.
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).
Na obrazovce Vytvořit novou webovou aplikaci se ujistěte, že je zaškrtnuté políčko 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.
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.
# This stage is used when running from VS in fast mode (Default for Debug configuration)
FROM mcr.microsoft.com/dotnet/aspnet:8.0-nanoserver-1809 AS base
WORKDIR /app
EXPOSE 8080
EXPOSE 8081
# This stage is used to build the service project
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
# 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 "./MyWebApp.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", "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 container
a 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ů.
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.
Změňte rozevírací seznam konfigurace na Vydání a sestavte aplikaci.
Klikněte pravým tlačítkem na projekt v Průzkumník řešení a zvolte Publikovat.
V dialogovém okně Publikovat vyberte kartu Docker Container Registry .
Zvolte Vytvořit nový registr kontejnerů Azure.
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. Vyberte Vytvořit. V dialogovém okně Publikovat se teď zobrazuje vytvořený registr.
Zvolením možnosti Dokončit dokončíte proces publikování image kontejneru do nově vytvořeného registru v Azure.
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.