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:
Open Visual Studio en selecteer Een nieuw project maken.
Kies in Een nieuw project maken de optie ASP.NET-webtoepassing (.NET Framework) voor #C. Selecteer vervolgens Volgende.
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.
U kunt elk type ASP.NET-web-app implementeren in Azure. Kies voor deze quickstart de sjabloon MVC.
Selecteer onder Verificatie de optie Geen. Selecteer onder Geavanceerd de optie Docker-ondersteuning en schakel Configureren voor HTTPS uit. Selecteer Maken.
Als het bestand Dockerfile niet automatisch wordt geopend, opent u het vanuit Solution Explorer.
U hebt een ondersteunde bovenliggende installatiekopie nodig. Wijzig de bovenliggende installatiekopie door de regel
FROMte vervangen door de volgende code en het bestand op te slaan:FROM mcr.microsoft.com/dotnet/framework/aspnet:4.8-windowsservercore-ltsc2019Selecteer in het menu van Visual Studio de optie Foutopsporing > Starten zonder foutopsporing om de web-app lokaal uit te voeren.
Publiceren naar Azure Container Registry
Klik in Solution Explorer met de rechtermuisknop op het project myfirstazurewebapp en selecteer Publiceren.
Selecteer in Doel de optie Docker Container Registry en klik vervolgens op Volgende.
Selecteer in Specifiek doel de Azure Container Registry en klik vervolgens op Volgende.
Zorg ervoor dat in Publiceren het juiste abonnement is gekozen. Selecteer in Containerregisters de + knop om een nieuwe Azure Container Registry.
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.
Selecteer in Publiceren onder Container Registry het register dat u hebt gemaakt en selecteer vervolgens Voltooien.
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.
Een Windows-container-app maken
Meld u aan bij de Azure-portal.
Kies in de linkerbovenhoek van Azure Portal Een resource maken.
Selecteer onder Populaire services de optie Maken onder Web-app.
Kies in Web-app maken uw abonnement en een resourcegroep. U kunt een nieuwe resourcegroep maken, indien nodig.
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.

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.

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

Klik op Ga naar resource.
Klik in het overzicht van deze resource op de koppeling naast URL.
Er wordt een nieuwe browserpagina geopend met de volgende pagina:

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

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
Open in Visual Studio, in Solution Explorer, achtereenvolgens Weergaven > Start > Index.cshtml.
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>Als u opnieuw wilt implementeren in Azure, klikt u in Solution Explorer met de rechtermuisknop op het project myfirstazurewebapp, en kiest u Publiceren.
Selecteer op de pagina Publiceren de knop Publiceren en wacht tot het publiceren is voltooit.
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.

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.

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 Azure-account
- Docker
- Visual Studio Code
- De Azure App Service-extensie voor VS Code. U kunt deze extensie gebruiken voor het maken, beheren en implementeren van Linux-web-apps in het Platform-as-a-Service van Azure (PaaS).
- De Docker-extensie voor VS Code. U kunt deze extensie gebruiken om het beheer te vereenvoudigen van lokale Docker-installatiekopieën en -opdrachten en om installatiekopieën van gebouwde apps te implementeren in Azure.
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
Start Visual Studio Code.
Selecteer het Azure-logo in de activiteitenbalk,navigeer naar de VERKENNER VAN APP SERVICE, selecteer Aanmelden bij Azure en volg de instructies.

Controleer in de statusbalk onderaan het e-mailadres van uw Azure-account. In de APP SERVICE-verkenner moet uw abonnement worden weergegeven.
Selecteer het Docker-logo in de activiteitenbalk. Controleer in de verkenner REGISTERS of het containerregister dat u hebt gemaakt, wordt weergegeven.

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
- 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.
Open het opdrachtenpaleten typ Docker Images: Build Image. Typ Enter om de opdracht uit te voeren.
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.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.

Implementeren naar containerregister
Klik in de activiteitenbalk op het Docker-pictogram. Zoek in DE VERKENNER de afbeelding die u zojuist hebt gemaakt.
Vouw de afbeelding uit, klik met de rechtermuisknop op de tag die u wilt en klik op Push.
Zorg ervoor dat de tag image begint met
<acr-name>.azurecr.ioen druk op Enter.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.

Implementeren naar App Service
- Vouw in de verkenner REGISTERS de afbeelding uit, klik met de rechtermuisknop op de tag en klik op Deploy image to Azure App Service.
- 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:
- Cosmos DB
- Azure Functions
- Azure CLI-hulpprogramma's
- Azure Resource Manager-hulpprogramma’s
- Het extensiepakket van Azure Tools bevat alle bovenstaande extensies.