Een aangepaste container uitvoeren in Azure

Azure App Service biedt vooraf gedefinieerde toepassingsstacks in Windows, zoals ASP.NET of Node.js, die worden uitgevoerd in IIS. De vooraf geconfigureerde toepassingsstacks vergrendelen echter het besturingssysteem en voorkomen toegang op laag niveau. Aangepaste Windows containers hebben deze beperkingen niet en stellen ontwikkelaars in staat om de containers volledig aan te passen en containertoepassingen volledige toegang te geven tot Windows functionaliteit.

In deze quickstart ziet u hoe u een ASP.NET-app in een Windows implementeert om een Azure Container Registry te Visual Studio. U voert de app uit in een aangepaste container in Azure App Service.

Vereisten

Vereisten voor het voltooien van deze zelfstudie:

  • Docker voor Windows installeren.
  • Docker instellen voor het uitvoeren van Windows-containers.
  • Installeer Visual Studio 2022 met de workloads ASP.NET webontwikkeling en Azure-ontwikkeling. Controleer Visual Studio community van 2022 of .NET Framework onderdeel project- en itemsjablonen is geselecteerd met ASP.NET workload voor webontwikkeling. Als u al Visual Studio 2022 hebt geïnstalleerd:
    • Installeer de nieuwste updates in Visual Studio door Help > Controleren op updates te selecteren.
    • Voeg de workloads toe in Visual Studio door Extra > Hulpprogramma’s en functies ophalen te selecteren.

Een ASP.NET-web-app maken

Maak een ASP.NET-web-app door de volgende stappen uit te voeren:

  1. Open Visual Studio en selecteer Een nieuw project maken.

  2. Kies in Een nieuw project maken de optie ASP.NET-webtoepassing (.NET Framework) voor #C. Selecteer vervolgens Volgende.

    Een nieuw project maken

  3. In Uw nieuwe project configureren, onder Project naam, noemt u de toepassing myfirstazurewebapp. Selecteer onder Framework de .NET Framework 4.8 en selecteer vervolgens Maken.

    Uw web-app-project configureren

  4. U kunt elk type ASP.NET-web-app implementeren in Azure. Kies voor deze quickstart de sjabloon MVC.

  5. Selecteer onder Verificatie de optie Geen. Selecteer onder Geavanceerd de optie Docker-ondersteuning en schakel Configureren voor HTTPS uit. Selecteer Maken.

    ASP.NET-webtoepassing maken

  6. Als het bestand Dockerfile niet automatisch wordt geopend, opent u het vanuit Solution Explorer.

  7. U hebt een ondersteunde bovenliggende installatiekopie nodig. Wijzig de bovenliggende installatiekopie door de regel FROM ​​te vervangen door de volgende code en het bestand op te slaan:

    FROM mcr.microsoft.com/dotnet/framework/aspnet:4.8-windowsservercore-ltsc2019
    
  8. Selecteer in het menu van Visual Studio de optie Foutopsporing > Starten zonder foutopsporing om de web-app lokaal uit te voeren.

    De app lokaal uitvoeren

Publiceren naar Azure Container Registry

  1. Klik in Solution Explorer met de rechtermuisknop op het project myfirstazurewebapp en selecteer Publiceren.

  2. Selecteer in Doel de optie Docker Container Registry en klik vervolgens op Volgende.

    Selecteer Docker Container Registry

  3. Selecteer in Specifiek doel de Azure Container Registry en klik vervolgens op Volgende.

    Publiceren vanaf de projectoverzichtspagina

  4. Zorg ervoor dat in Publiceren het juiste abonnement is gekozen. Selecteer in Containerregisters de + knop om een nieuwe Azure Container Registry.

    Nieuwe Azure Container Registry

  5. Zorg ervoor dat in Nieuwe maken het juiste abonnement is gekozen. Selecteer onder Resourcegroep de optie Nieuw, typ myResourceGroup als naam en klik op OK. Selecteer onder SKU de optie Basic. Selecteer onder Registerlocatie een locatie van het register en selecteer vervolgens Maken.

    Azure Container Registry details

  6. Selecteer in Publiceren onder Container Registry het register dat u hebt gemaakt en selecteer vervolgens Voltooien.

    Bestaande Azure Container Registry

    Wacht totdat de installatie is voltooid. Op de pagina Publiceren wordt nu de naam van de opslagplaats weergegeven. Selecteer de knop Kopiëren om de naam van de opslagplaats voor later te kopiëren.

    Schermopname met de knop naam van de opslagplaats gemarkeerd.

Een Windows-container-app maken

  1. Meld u aan bij de Azure-portal.

  2. Kies in de linkerbovenhoek van Azure Portal Een resource maken.

  3. Selecteer onder Populaire services de optie Maken onder Web-app.

  4. Kies in Web-app maken uw abonnement en een resourcegroep. U kunt een nieuwe resourcegroep maken, indien nodig.

  5. Geef een app-naam op, zoals win-container-demo. Kies Docker-container voor Publiceren en Windows voor Besturingssysteem. Selecteer Volgende: Docker om door te gaan.

    Een web-app voor containers maken

  6. Kies voor Bron van de Docker Hub en voer bij Afbeelding en tag de naam van de opslagplaats in die u hebt gekopieerd in Publiceren naar Azure Container Registry.

    Een web-app voor containers configureren

    Als u elders een aangepaste installatiekopie voor de webtoepassing hebt, bijvoorbeeld in Azure Container Registry of in een andere privéopslagplaats, kunt u deze hier configureren.

  7. Selecteer Controleren en maken en vervolgens Maken, en wacht tot de vereiste resources zijn gemaakt in Azure.

Naar de container-app bladeren

Als de bewerking in Azure is voltooid, wordt er een melding weergegeven.

Implementatie geslaagd

  1. Klik op Ga naar resource.

  2. Klik in het overzicht van deze resource op de koppeling naast URL.

Er wordt een nieuwe browserpagina geopend met de volgende pagina:

Windows-container-app wordt gestart

Wacht enkele minuten en probeer het opnieuw totdat u de startpagina van ASP.NET ziet:

Windows-container-app wordt uitgevoerd

Gefeliciteerd! U voert nu uw eerste aangepaste Windows-container uit in Azure App Service.

Logboeken voor opstarten van containers bekijken

Het kan enige tijd duren voordat de Windows-container is geladen. Als u de voortgang wilt bekijken, gaat u naar de volgende URL en vervangt u <app_name> door de naam van de app.

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

De gestreamde logboeken zien er ongeveer als volgt uit:

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

Lokaal bijwerken en opnieuw implementeren

  1. Open in Visual Studio, in Solution Explorer, achtereenvolgens Weergaven > Start > Index.cshtml.

  2. Zoek ergens bovenaan de HTML-tag <div class="jumbotron"> en vervang het volledige element door de volgende code:

    <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. Als u opnieuw wilt implementeren in Azure, klikt u in Solution Explorer met de rechtermuisknop op het project myfirstazurewebapp, en kiest u Publiceren.

  4. Selecteer op de pagina Publiceren de knop Publiceren en wacht tot het publiceren is voltooit.

  5. Als u wilt dat App Service de nieuwe installatiekopie ophaalt uit Docker Hub, moet u de app opnieuw starten. Klik als u terugbent in de app-pagina in de portal op Opnieuw starten > Ja.

    Web-app opnieuw starten in Azure

Blader opnieuw naar de container-app. Nadat de webpagina is vernieuwd, moet de app eerst teruggaan naar de pagina 'Starting up' en dan na een paar minuten opnieuw de bijgewerkte webpagina weergeven.

Bijgewerkte web-app in Azure

Volgende stappen

U kunt ook andere resources bekijken:

App Service op Linux biedt vooraf gedefinieerde toepassingsstacks op Linux met ondersteuning voor talen zoals .NET, PHP, Node.js en meer. U kunt een aangepaste Docker-installatiekopie ook gebruiken om uw web-app uit te voeren op een toepassingsstack die nog niet in Azure is gedefinieerd. In deze quickstart ziet u hoe u een installatiekopie van een Azure Container Registry (ACR) implementeert in App Service.

Vereisten

Een containerregister maken

In deze quickstart wordt Azure Container Registry gebruikt als het register van uw keuze. U kunt andere registers gebruiken, maar de stappen kunnen enigszins verschillen.

Maak een containerregister aan de hand van de instructies in Quickstart: Een privécontainerregister maken met behulp van de Azure Portal.

Belangrijk

Stel de optie Gebruiker met beheerdersrechten in op Inschakelen wanneer u het Azure-containerregister maakt. U kunt deze optie ook instellen in de sectie Toegangssleutels van de registerpagina in Azure Portal. Deze instelling is vereist voor toegang tot App Service. Zie Deploy from ACR tutorial (Implementeren vanuit ACR) voor beheerde identiteiten.

Aanmelden

  1. Start Visual Studio Code.

  2. Selecteer het Azure-logo in de activiteitenbalk,navigeer naar de VERKENNER VAN APP SERVICE, selecteer Aanmelden bij Azure en volg de instructies.

    aanmelden bij Azure

  3. Controleer in de statusbalk onderaan het e-mailadres van uw Azure-account. In de APP SERVICE-verkenner moet uw abonnement worden weergegeven.

  4. Selecteer het Docker-logo in de activiteitenbalk. Controleer in de verkenner REGISTERS of het containerregister dat u hebt gemaakt, wordt weergegeven.

    Schermopname van de waarde Registers met Azure uit uitgebreid.

Vereisten controleren

Controleer of Docker is geïnstalleerd en wordt uitgevoerd. Met de volgende opdracht wordt de Docker-versie weergegeven als Docker wordt uitgevoerd.

docker --version

Een afbeelding maken en bouwen

  1. Open in Visual Studio Code een lege map en voeg een bestand toe met de naam Dockerfile . Plak in het Dockerfile de inhoud op basis van het gewenste taalkader:
FROM mcr.microsoft.com/appsvc/dotnetcore:lts

ENV PORT 8080
EXPOSE 8080

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

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

In dit Dockerfile is de bovenliggende afbeelding een van de ingebouwde .NET-containers van App Service. U vindt de bronbestanden voor deze opslagplaats in de opslagplaats Azure-App-Service/ImageBuilder GitHub generateDockerFiles/dotnetcore. De Dockerfile kopieert een eenvoudige .NET-app naar /defaulthome/hostingstart . Uw Dockerfile start gewoon die app.

  1. Open het opdrachtenpaleten typ Docker Images: Build Image. Typ Enter om de opdracht uit te voeren.

  2. Geef in het vak Image Tag de tag op die u wilt gebruiken in de volgende indeling: , waarbij de naam is van <acr-name>.azurecr.io/<image-name>/<tag> <acr-name> het containerregister dat u hebt gemaakt. Druk op Enter.

  3. Wanneer het bouwen van de afbeelding is voltooid, klikt u op Vernieuwen bovenaan de VERKENNER VAN IMAGES en controleert u of de afbeelding is gemaakt.

    Schermopname van de gebouwde afbeelding met een tag.

Implementeren naar containerregister

  1. Klik in de activiteitenbalk op het Docker-pictogram. Zoek in DE VERKENNER de afbeelding die u zojuist hebt gemaakt.

  2. Vouw de afbeelding uit, klik met de rechtermuisknop op de tag die u wilt en klik op Push.

  3. Zorg ervoor dat de tag image begint met <acr-name>.azurecr.io en druk op Enter.

  4. Wanneer Visual Studio code klaar bent met het pushen van de afbeelding naar het containerregister, klikt u boven aan de verkenner REGISTERS op Vernieuwen en controleert u of de afbeelding is pushed.

    Schermopname van de afbeelding die is geïmplementeerd in Azure Container Registry.

Implementeren naar App Service

  1. Vouw in de verkenner REGISTERS de afbeelding uit, klik met de rechtermuisknop op de tag en klik op Deploy image to Azure App Service.
  2. Volg de aanwijzingen om een abonnement, een wereldwijd unieke app-naam, een resourcegroep en een App Service kiezen. Kies B1 Basic als prijscategorie en een regio bij u in de buurt.

Na de implementatie is uw app beschikbaar op http://<app-name>.azurewebsites.net.

Een resourcegroep is een benoemde verzameling van alle resources van uw toepassing in Azure. Een resourcegroep kan bijvoorbeeld een verwijzing naar een website, een database en een Azure-functie bevatten.

Een App Service-plan definieert de fysieke resources die worden gebruikt voor het hosten van uw website. In deze quickstart wordt gebruikgemaakt van een Basic-hostingsabonnement op Linux-infrastructuur, wat betekent dat de site wordt gehost op een Linux-computer naast andere websites. Als u begint met het Basic-abonnement, kunt u omhoog schalen met behulp van Azure Portal zodat u de enige site bent die op een computer wordt uitgevoerd. Zie prijzen voor App Service prijzen.

Door de website bladeren

In het deelvenster Uitvoer wordt de status van de implementatiebewerkingen weergegeven. Wanneer de bewerking is voltooid, klikt u op Site openen in de pop-upmelding om de site in uw browser te openen.

Volgende stappen

Gefeliciteerd, u hebt deze quickstart voltooid.

De App Service app wordt elke keer dat deze wordt gestart, uit het containerregister pullt. Als u de afbeelding opnieuw bouwt, hoeft u deze alleen naar het containerregister te pushen en haalt de app de bijgewerkte afbeelding op wanneer deze opnieuw wordt opgestart. Als u wilt dat uw app de bijgewerkte afbeelding onmiddellijk moet downloaden, start u deze opnieuw op.

Andere Azure-extensies: