Voor dit ATA-project krijg je een kijkje in hoe Docker in Azure werkt. In deze Azure Docker handleiding ga je meer leren over de Azure Container Instance (ACI) service van Microsoft.
Azure Container Instance is een gehoste Kubernetes-cluster via Azure Docker-hosting. Hiermee kun je elke Docker-image (Windows en Linux) implementeren en uitvoeren als een container. Elke Azure Docker-container werkt als een zelfstandige container en maakt gebruik van zijn eigen toegewezen CPU en geheugen.
In dit project leer je hoe je je eerste Azure Container Instance implementeert en uitvoert, gebaseerd op een voorbeeld-ASP.NET-containerimage van Microsoft in de Azure-public cloud.
Aan het einde van dit project heb je een ASP.NET-website die wordt uitgevoerd in een Docker-container die wordt gehost door de Azure Container Instance-service.
Vereisten voor omgeving en kennis
Om het meeste uit deze Azure Docker-handleiding te halen, moet je het volgende hebben:
- A local Windows 10 client with Docker Desktop installed.
- A Microsoft Azure account
- Toegang tot een Azure-account met rechten om een container te implementeren in Azure Container Registry
- De Windows-versie van Azure CLI geïnstalleerd. Je leert werken vanaf de opdrachtregel.
- A beginner understanding of containers and Docker.
- A registered Docker ID.
Als je het voorbeeld gekozen in deze Azure Docker handleiding niet leuk vindt, kun je altijd een andere containerimage gebruiken op de Docker Hub.
Zonder verder oponthoud, laten we aan de slag gaan met het bouwen van dit project!
Het uitvoeren van een Docker-container
Om frustratie later te voorkomen wanneer iets niet werkt, moet je altijd eerst controleren of de Docker Engine draait. Open hiervoor een opdrachtprompt of PowerShell-sessie en voer docker info
uit.
Je kunt hieronder het type uitvoer zien dat je zou moeten ontvangen.

Om te valideren dat je een Docker-container hebt geopend, voer je docker run hello-world
uit. Achter de schermen voert het docker
-commando een paar stappen uit:
- Zoekt lokaal op je Windows 10-computer naar een container met de naam hello-word.
- Wanneer deze niet wordt gevonden, wordt er vervolgens contact opgenomen met de openbare Docker Hub-opslagplaats om te zoeken naar de nieuwste versie van een container met de naam hello-world.
- Wanneer de container is gevonden, wordt deze vervolgens gedownload vanuit de Docker Hub-opslagplaats.
- Zodra gedownload, wordt de container gestart en worden opstartinstructies uitgevoerd die worden verstrekt binnen het afbeelding die de container gebruikt.
Je kunt hieronder wat voorbeelduitvoer zien.

Het starten van een voorbeeld ASP.NET-container
Nu je weet hoe je een Docker-container kunt downloaden en uitvoeren, download en voer je nu de container uit waarin je aan dit project zult werken. Deze Docker-container is een afbeelding van een ASP.Net Core-webapp.
Om de afbeelding van deze Azure Docker-handleiding te downloaden, voer je de volgende opdracht uit:
Deze opdracht doet het volgende:
- Omdat de Docker-afbeelding lokaal niet beschikbaar is, downloadt Docker een container genaamd aspnetapp van een andere openbare containerregistry gehost door Microsoft, te vinden op mcr.microsoft.com in de map dotnet/core/samples. De mcr.microsoft.com containerregistry lijkt op de openbare Docker Hub, maar wordt onderhouden door Microsoft en host alleen Microsoft-containerafbeeldingen.
- Voert de container uit op je lokale computer.
- (-p 8000:80) – Koppelt de luisterende TCP-poort 80 op de container aan TCP-poort 8000. Hierdoor kun je de web-app lokaal benaderen op poort 8000.
- (-it) – De container wordt interactief gestart, wat betekent dat je direct naar de console wordt gebracht wanneer deze start.
- (
—rm
) – Wanneer de container wordt gestopt, wordt deze verwijderd.
Je ziet hieronder de verwachte uitvoer.

6. Verbind vanuit je browser met deze draaiende containerapplicatie door naar http://localhost:8000 te gaan. Je zou de ASP.Net-voorbeeldweb-app moeten zien

Het maken van een Azure Container Registry (ACR)-instantie
Zodra u de ASP.NET-container hebt gedownload naar uw lokale computer, is het nu tijd om deze over te zetten naar Azure Docker-hosting met ACI en deze container uit te voeren in Azure. Hiervoor zullen we de democentainer naar Azure Container Registry (ACR) pushen. ACR is een service waarmee u Docker-containers rechtstreeks binnen Azure kunt implementeren en uitvoeren.
- Log in op het Azure-portal.
- Klik bovenaan op het terminalpictogram om Azure Cloud Shell te starten.

3. Zorg ervoor dat u de Bash-shell kiest zoals hieronder weergegeven.

4. Maak een Azure-resourcegroep aan om een instantie van ACR in te plaatsen met behulp van de opdracht az group create
hieronder.

5. Maak nu de ACR binnen de resourcegroep aan met de opdracht az acr create
. Hieronder ziet u een voorbeeld van het aanmaken van een ACR met een Basic SKU waarbij de parameter admin-enabled
is ingesteld op true
. Dit is ingesteld op true
omdat het u later in staat stelt resourcebeheer uit te voeren.

–admin-enabled true
Zodra u klaar bent, zou u nu een ACR-instantie moeten hebben die wordt uitgevoerd binnen uw resourcegroep. Azure Docker-hosting to the rescue!
Verbinding maken met de ACR-instantie lokaal
- U moet nu overschakelen van de Azure Cloud Shell naar uw lokale Windows-computer om de installatie te voltooien.
- Op je lokale machine, start PowerShell of een command prompt met administratieve rechten. Ik zal PowerShell gebruiken.
- Authenticeer bij Azure met de Azure CLI door
az login
uit te voeren en volg de instructies om je referenties op te geven.

Als de authenticatie succesvol is verlopen, zou je wat JSON-uitvoer moeten zien die de gebruiker aangeeft waarmee je zojuist bent geauthenticeerd.

4. Authenticeer vervolgens bij de ACR-instantie die je zojuist hebt aangemaakt in de Azure Cloud Shell met het az acr login
-commando door het onderstaande commando uit te voeren. Hieronder zie je dat ik verbinding maak met een ACR-instantie genaamd nopacr1, in de Azure-resourcegroep NOPRG.
Updating The Docker Image Tag
- Je bent nu klaar om je lokale Docker-image naar je ACR-instantie in Azure Docker-hosting of ACI te pushen. Maar je moet eerst voldoen aan een ACR-afhankelijkheid. Alle Docker-images die naar een ACR-instantie worden gepusht, moeten de naam van de ACR-instantie in de imagenaam hebben.

Vind het ID-nummer of de naam van het Docker-image met het commando docker images
.

2. Update de Docker-image-tag voor het Docker-image door het docker tag
-commando uit te voeren zoals hieronder getoond. Als je de naamgevingsconventie volgt, gebruik dan de ACR-naam van NOPACR1 en definieer de tag als nopacr1.azurecr.io. Voor het image zelf, gebruik de naam dotnetsample.

3. Verifieer dat de tag is toegepast met behulp van het docker images
-commando. Je zou nu moeten zien dat de tag is bijgewerkt.
- Het Docker-image uploaden naar de ACR-instantie en verifiëren

1. Upload nu de lokale afbeelding naar de ACR-instantie met behulp van het docker push
-commando zoals hieronder weergegeven, waarbij het dns-naamlabel wordt opgegeven waar de ACR-instantie zich bevindt.

2. Nadat deze is geüpload, controleer of het pushen naar de ACR-instantie goed is verlopen door de Azure Portal te gebruiken. Ga naar Alle services → Azure-containerregistries en selecteer de ACR-instantie die je eerder hebt gemaakt.

3. In het menu aan de linkerkant onder de Services-sectie, klik op Repositories. De Docker-afbeelding die je zojuist naar je ACR-instantie hebt gepusht, zou hier moeten verschijnen.

4. Klik op de afbeelding en je zult de versie en wat andere nuttige informatie zien.
Het Azure-containerinstantie (ACI) uitvoeren
- Je hebt nu een ACR-instantie gemaakt, een Docker-containerafbeelding getagd met de ACR-naam als referentie en de afbeelding naar de ACR-instantie gepusht. Nu is het tijd om Azure Container Instance (ACI) te gebruiken om de Docker-afbeelding die is opgeslagen in je ACR-instantie uit te voeren.

Ga verder vanaf de vorige stap, klik op het … naast latest en kies Instantie uitvoeren. Dit opent het Containerinstantie maken scherm.
- 2. Vul de velden in het Containerinstantie maken-venster hieronder in met de volgende informatie:
- Container naam – elke naam die je wilt gebruiken voor deze draaiende container
- OS-type – Linux (Dit hangt af van de broncontainer. Als je dezelfde container in dit project gebruikt, kan dit Windows zijn.)
- Abonnement – jouw Azure-abonnement
- Resourcegroep – elke bestaande of nieuwe Azure Resourcegroep om de containerinstantie aan toe te voegen
Locatie – gebaseerd op de resourcegroep

Voor deze Azure Docker-zelfstudie met ASP.NET-container kunt u alle andere instellingen ongewijzigd laten. In een productieomgeving moet u, afhankelijk van wat de container uitvoert, mogelijk deze instellingen wijzigen.

3. Druk op OK om de containerinstantie te maken.
4. Zodra de containerinstantie is geïmplementeerd, zou u een pagina moeten zien die eruitziet als het onderstaande voorbeeld.

5. Nadat de implementatie is voltooid, opent u de ACI in het portaal door naar Alle services te gaan —> Containerinstanties. Eenmaal hier, bladert u naar de zojuist gecreëerde Azure Containerinstantie (ACI). U zou de onderstaande instantie moeten zien.

6. Kopieer het IP-adres in de rechterbovenhoek en plak het in een webbrowser. Uw voorbeeld ASP.NET-webtoepassing moet laden vanaf uw Azure Containerinstantie (ACI) en een webpagina weergeven zoals hieronder getoond.
Als u klaar bent met deze container, kunt u vervolgens de opdracht az container delete
gebruiken om de container te verwijderen.
Conclusie