Meester Azure Docker-implementatie: Stapsgewijze Handleiding

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:

  1. A local Windows 10 client with Docker Desktop installed.
  2. A Microsoft Azure account
  3. Toegang tot een Azure-account met rechten om een container te implementeren in Azure Container Registry
  4. De Windows-versie van Azure CLI geïnstalleerd. Je leert werken vanaf de opdrachtregel.
  5. A beginner understanding of containers and Docker.
  6. 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.

Inspecting information about the local Docker installation

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:

  1. Zoekt lokaal op je Windows 10-computer naar een container met de naam hello-word.
  2. 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.
  3. Wanneer de container is gevonden, wordt deze vervolgens gedownload vanuit de Docker Hub-opslagplaats.
  4. 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.

Download a sample Docker container called hello-world

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:

> docker run --name aspnetcore_sample --rm -it -p 8000:80 mcr.microsoft.com/dotnet/core/samples:aspnetapp

Deze opdracht doet het volgende:

  1. 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.
  2. Voert de container uit op je lokale computer.
  3. (-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.
  4. (-it) – De container wordt interactief gestart, wat betekent dat je direct naar de console wordt gebracht wanneer deze start.
  5. (—rm) – Wanneer de container wordt gestopt, wordt deze verwijderd.

Je ziet hieronder de verwachte uitvoer.

Downloading a container instance from Microsoft

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

Sample ASP.NET web app

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.

  1. Log in op het Azure-portal.
  2. Klik bovenaan op het terminalpictogram om Azure Cloud Shell te starten.
Starting Azure Cloud Shell

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

Bash in Azure Cloud Shell

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

> az group create --name <RGname> --location <Azure Region of choice>
Creating a resource group

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.

> az acr create --resource-group <RGname> --name <ACRname> --sku Basic
 --admin-enabled true
Creating an Azure Container Registry

–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

  1. U moet nu overschakelen van de Azure Cloud Shell naar uw lokale Windows-computer om de installatie te voltooien.
  2. Op je lokale machine, start PowerShell of een command prompt met administratieve rechten. Ik zal PowerShell gebruiken.
  3. Authenticeer bij Azure met de Azure CLI door az login uit te voeren en volg de instructies om je referenties op te geven.
Authenticating to Azure

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

> az acr login --name <ACR-Name> --resource-group <RG Name>
Logging onto ACR

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

  1. 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.
Finding the ACR Docker image

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

> docker tag mcr.microsoft.com/dotnet/core/samples:aspnetapp <ACRName>.azurecr.io/<imagenameofchoice>
Updating the Docker tag

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.

Verifying Docker tag

3. Verifieer dat de tag is toegepast met behulp van het docker images-commando. Je zou nu moeten zien dat de tag is bijgewerkt.

  1. Het Docker-image uploaden naar de ACR-instantie en verifiëren
> docker push <ACRName>.azurecr.io/<nameofimage>
Pushing Docker image to ACR

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.

Inspecting ACR instance in Azure portal

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 servicesAzure-containerregistries en selecteer de ACR-instantie die je eerder hebt gemaakt.

Inspecting Docker repo

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.

Inspecting Docker image

4. Klik op de afbeelding en je zult de versie en wat andere nuttige informatie zien.

Het Azure-containerinstantie (ACI) uitvoeren

  1. 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.
Creating a container instance

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

Creating a container instance

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.

Successful container instance deployment

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.

Inspecting created container instance

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.

Sample ASP.NET Core webpage

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

Source:
https://adamtheautomator.com/azure-docker-tutorial/