Spuštění vlastního kontejneru v Azure

Azure App Service poskytuje předdefinované zásobníky aplikací ve Windows, jako je ASP.NET nebo Node.js, které běží ve službě IIS. Předkonfigurované zásobníky aplikací však uzamknou operační systém a zabrání přístupu na nízké úrovni. Vlastní kontejnery Windows nemají tato omezení a umožňují vývojářům plně přizpůsobit kontejnery a poskytnout kontejnerizovaným aplikacím úplný přístup k Windows funkcím.

V tomto rychlém startu se dozvíte, jak nasadit aplikaci ASP.NET v Windows imagi Azure Container Registry z Visual Studio. Aplikaci spustíte ve vlastním kontejneru v Azure App Service.

Požadavky

Pro absolvování tohoto kurzu potřebujete:

  • Nainstalujte Docker for Windows.
  • Přepnout Docker na spouštění kontejnerů Windows.
  • Nainstalujte Visual Studio 2022 s úlohami vývoje pro ASP.NET a web a vývoj pro Azure. V Visual Studio 2022 Community se ujistěte, že je vybraná komponenta šablon projektů a položek rozhraní .NET Framework s ASP.NET a úlohou vývoje webu. Pokud jste už nainstalovali Visual Studio 2022:
    • Nejnovější aktualizace nainstalujete v Visual Studio výběrem možnosti Kontrola nápovědy>pro Aktualizace.
    • Pokud chcete přidat úlohy v Visual Studio, vyberte Nástroje>získat nástroje a funkce.

Vytvoření webové aplikace ASP.NET

Pomocí následujícího postupu vytvořte webovou aplikaci ASP.NET:

  1. Otevřete Visual Studio a pak vyberte Vytvořit nový projekt.

  2. V části Vytvořit nový projekt vyhledejte a zvolte ASP.NET Web Application (.NET Framework) pro C# a pak vyberte Další.

    Create a new project

  3. V části Konfigurace nového projektupod názvem Project pojmenujte aplikaci myfirstazurewebapp. V části Framework vyberte rozhraní .NET Framework 4.8 a pak vyberte Vytvořit.

    Configure your web app project

  4. Do Azure můžete nasadit jakýkoli typ webové aplikace ASP.NET. Pro účely tohoto rychlého startu zvolte šablonu MVC .

  5. V části Ověřování vyberte Možnost Žádné. V části Upřesnit vyberte podporu Dockeru a zrušte zaškrtnutí políčka Konfigurovat pro HTTPS. Vyberte Vytvořit.

    Create ASP.NET Web Application

  6. Dockerfile Pokud se neotevře automaticky, otevřete ho z Průzkumník řešení.

  7. Potřebujete podporovanou nadřazenou image. Nadřazenou image změníte tak, že řádek FROM nahradíte následujícím kódem a soubor uložíte:

    FROM mcr.microsoft.com/dotnet/framework/aspnet:4.8-windowsservercore-ltsc2019
    
  8. V nabídce Visual Studio vyberte Spustit ladění>bez ladění a spusťte webovou aplikaci místně.

    Run app locally

Publikování do služby Azure Container Registry

  1. V Průzkumník řešení klikněte pravým tlačítkem myši na projekt myfirstazurewebapp a vyberte Publikovat.

  2. V cíli vyberte Docker Container Registry a pak vyberte Další.

    Select Docker Container Registry

  3. V části Konkrétní cíl vyberte Azure Container Registry a pak vyberte Další.

    Publish from project overview page

  4. V části Publikovat se ujistěte, že je vybrané správné předplatné. V registrech kontejnerů vyberte + tlačítko pro vytvoření nového Azure Container Registry.

    Create new Azure Container Registry

  5. V části Vytvořit nový se ujistěte, že je vybrané správné předplatné. V části Skupina prostředků vyberte Nový a zadejte myResourceGroup pro název a vyberte OK. V části SKU vyberte Basic. V části Umístění registru vyberte umístění registru a pak vyberte Vytvořit.

    Azure Container Registry details

  6. V části Publikovat v části Container Registry vyberte registr, který jste vytvořili, a pak vyberte Dokončit.

    Select existing Azure Container Registry

    Počkejte, až se nasazení dokončí. Na stránce Publikovat se teď zobrazuje název úložiště. Výběrem tlačítka pro kopírování zkopírujte název úložiště pro pozdější použití.

    Screenshot that highlights the repository name.

Vytvoření Windows vlastního kontejneru

  1. Přihlaste se k webu Azure Portal.

  2. V levém horním rohu webu Azure Portal zvolte Vytvořit prostředek.

  3. V části Oblíbené služby vyberte Vytvořit v části Webová aplikace.

  4. V části Vytvořit webovou aplikaci zvolte své předplatné a skupinu prostředků. V případě potřeby můžete vytvořit novou skupinu prostředků.

  5. Zadejte název aplikace, například win-container-demo. Zvolte kontejner Dockeru pro publikování a Windows pro operační systém. Vyberte Další: Pokračujte v Dockeru .

    Create a Web App for Containers

  6. Jako zdroj image zvolte Docker Hub a jako image a značku zadejte název úložiště, který jste zkopírovali do Azure Container Registry.

    Configure your a Web App for Containers

    Pokud máte vlastní image pro svou webovou aplikaci někde jinde, například ve službě Azure Container Registry nebo v jakémkoli jiném soukromém úložišti, tady ji můžete nakonfigurovat. Pokračujte výběrem možnosti Zkontrolovat a vytvořit .

  7. Ověřte všechny podrobnosti a pak vyberte Vytvořit a počkat, až Azure vytvoří požadované prostředky. Create your a Web App for Containers

Přejděte do vlastního kontejneru.

Po dokončení operace Azure se zobrazí okno s oznámením.

Deployment succeeded

  1. Klikněte na Přejít k prostředku.

  2. V přehledu tohoto prostředku postupujte podle odkazu vedle adresy URL.

Otevře se nová stránka prohlížeče na následující stránce:

Windows custom container starting

Počkejte několik minut a zkuste to znovu, dokud se nezobrazí úvodní stránka ASP.NET:

Windows custom container running

Gratulujeme! Spustili jste svůj první vlastní kontejner s Windows ve službě Azure App Service.

Zobrazení protokolů spuštění kontejneru

Načtení kontejneru s Windows může nějakou dobu trvat. Pokud chcete zobrazit průběh, přejděte na následující adresu URL nahrazením <app_name> názvem vaší aplikace.

https://<app_name>.scm.azurewebsites.net/api/logstream

Streamované protokoly vypadají takto:

2018-07-27T12:03:11  Welcome, you are now connected to log-streaming service.
27/07/2018 12:04:10.978 INFO - Site: win-container-demo - Start container succeeded. Container: facbf6cb214de86e58557a6d073396f640bbe2fdec88f8368695c8d1331fc94b
27/07/2018 12:04:16.767 INFO - Site: win-container-demo - Container start complete
27/07/2018 12:05:05.017 INFO - Site: win-container-demo - Container start complete
27/07/2018 12:05:05.020 INFO - Site: win-container-demo - Container started successfully

Místní aktualizace a opětovné nasazení

  1. V Visual Studio otevřete v Průzkumník řešení soubor Views>Home>Index.cshtml.

  2. Najděte HTML značku <div class="jumbotron"> poblíž začátku a nahraďte celý element následujícím kódem:

    <div class="jumbotron">
        <h1>ASP.NET in Azure!</h1>
        <p class="lead">This is a simple app that we've built that demonstrates how to deploy a .NET app to Azure App Service.</p>
    </div>
    
  3. Pokud chcete znovu nasadit do Azure, klikněte pravým tlačítkem myši na projekt myfirstazurewebapp v Průzkumník řešení a zvolte Publikovat.

  4. Na stránce Publikovat vyberte Publikovat a počkejte, než se publikování dokončí.

  5. Restartujte aplikaci, aby služba App Service dostala informaci, že má z Centra Dockeru načíst novou image. Zpátky na stránce aplikace na portálu klikněte na Restartovat>ano.

    Restart web app in Azure

Znovu přejděte k vlastnímu kontejneru . Po aktualizaci webové stránky by se aplikace měla napřed vrátit na stránku Spouštění a pak za pár minut by měla znovu zobrazit aktualizovanou webovou stránku.

Updated web app in Azure

Další kroky

Nebo se podívejte na další zdroje informací:

App Service v Linuxu poskytuje předem definované zásobníky aplikací v Linuxu s podporou jazyků, jako jsou .NET, PHP, Node.js a další. K provozování webové aplikace v zásobníku aplikací, který ještě není definovaný v Azure, můžete použít vlastní image Dockeru. V tomto rychlém startu se dozvíte, jak nasadit image z Azure Container Registry (ACR) do App Service.

Požadavky

Vytvoření registru kontejneru

Tento rychlý start používá Azure Container Registry jako registr podle výběru. Můžete používat jiné registry, ale postup se může mírně lišit.

Podle pokynů v rychlém startu vytvořte registr kontejneru: Pomocí Azure Portal vytvořte privátní registr kontejneru.

Důležité

Nezapomeňte nastavit možnost Správa Uživatelpovolit při vytváření registru kontejneru Azure. Můžete ho také nastavit v části Přístupové klíče na stránce registru v Azure Portal. Toto nastavení se vyžaduje pro přístup k App Service. Informace o spravované identitě najdete v kurzu nasazení z ACR.

Přihlásit se

  1. Spusťte editor Visual Studio Code.

  2. Na panelu aktivit vyberte logo Azure, přejděte do Průzkumníka služby APP SERVICE a pak vyberte Přihlásit se k Azure a postupujte podle pokynů.

    sign in to Azure

  3. Na stavovém řádku v dolní části ověřte e-mailovou adresu účtu Azure. V Průzkumníku služby APP SERVICE by se mělo zobrazit vaše předplatné.

  4. Na panelu aktivit vyberte logo Dockeru . V Průzkumníku REGISTRIES ověřte, že se zobrazí registr kontejneru, který jste vytvořili.

    Screenshot shows the Registries value with Azure expanded.

Kontrola požadavků

Ověřte, že máte nainstalovaný a spuštěný Docker. Následující příkaz zobrazí verzi Dockeru, pokud je spuštěná.

docker --version

Vytvoření a sestavení image

  1. V Visual Studio Code otevřete prázdnou složku a přidejte soubor s názvem Dockerfile. Dockerfile vložte obsah na základě požadované jazykové architektury:
FROM mcr.microsoft.com/appsvc/dotnetcore:lts

ENV PORT 8080
EXPOSE 8080

ENV ASPNETCORE_URLS "http://*:${PORT}"

ENTRYPOINT ["dotnet", "/defaulthome/hostingstart/hostingstart.dll"]

V tomto souboru Dockerfile je nadřazená image jedním z integrovaných kontejnerů .NET App Service. Zdrojové soubory pro něj najdete v úložišti Azure-App-Service/ImageBuilder GitHub v části GenerateDockerFiles/dotnetcore. Jeho soubor Dockerfile zkopíruje jednoduchou aplikaci .NET do /defaulthome/hostingstart. Váš soubor Dockerfile jednoduše spustí danou aplikaci.

  1. Otevřete paletu příkazů a zadejte Image Dockeru: Build Image. Zadáním klávesy Enter spusťte příkaz.

  2. Do pole značky obrázku zadejte požadovanou značku v následujícím formátu: <acr-name>.azurecr.io/<image-name>/<tag>, kde <acr-name> je název registru kontejneru, který jste vytvořili. Stiskněte Enter.

  3. Po dokončení sestavení obrázku klikněte v horní části Průzkumníka OBRÁZKŮ na tlačítko Aktualizovat a ověřte, že je image úspěšně sestavená.

    Screenshot shows the built image with tag.

Nasazení do registru kontejneru

  1. Na panelu aktivit klikněte na ikonu Dockeru . V Průzkumníku OBRÁZKŮ najděte obrázek, který jste vytvořili.

  2. Rozbalte obrázek, klikněte pravým tlačítkem myši na požadovanou značku a klikněte na Tlačítko Odeslat.

  3. Ujistěte se, že značka obrázku začíná <acr-name>.azurecr.io a stiskněte Enter.

  4. Když Visual Studio Kód dokončí nasdílení image do registru kontejneru, klikněte v horní části Průzkumníka REGISTRIES na aktualizovat a ověřte, že se image úspěšně nasdílí.

    Screenshot shows the image deployed to Azure container registry.

Nasazení do App Service

  1. V Průzkumníku REGISTRIES rozbalte image, klikněte pravým tlačítkem myši na značku a vyberte Nasadit image pro Azure App Service.
  2. Podle pokynů zvolte předplatné, globálně jedinečný název aplikace, skupinu prostředků a plán App Service. Zvolte B1 Basic pro cenovou úroveň a oblast blízko vás.

Po nasazení je vaše aplikace dostupná na adrese http://<app-name>.azurewebsites.net.

Skupina prostředků je pojmenovaná kolekce všech prostředků vaší aplikace v Azure. Skupina prostředků může například obsahovat odkaz na web, databázi a funkci Azure Functions.

Plán App Service definuje fyzické prostředky, které se použijí k hostování vašeho webu. V tomto rychlém startu se používá plán hostování basicu v infrastruktuře Linuxu , což znamená, že web bude hostovaný na počítači s Linuxem společně s dalšími weby. Pokud začnete s plánem Basic, můžete pomocí Azure Portal vertikálně navýšit kapacitu tak, aby vaše lokalita běžela na počítači. Informace o cenách najdete v tématu App Service cen.

Procházení webu

Na panelu Výstup se zobrazuje stav operací nasazení. Po dokončení operace vyberte Otevřít web v automaticky otevíraných oznámeních a otevřete web v prohlížeči.

Další kroky

Blahopřejeme, úspěšně jste dokončili tento rychlý start.

Aplikace App Service při každém spuštění načítá z registru kontejneru. Pokud image znovu sestavíte, stačí ji odeslat do registru kontejneru a aplikace se při restartování přetáhne do aktualizované image. Pokud chcete aplikaci říct, aby se aktualizovaná image okamžitě stáhla, restartujte ji.

Další rozšíření Azure: