Delen via


Quickstart: Een containerinstantie implementeren in Azure met behulp van de Azure CLI

Gebruik Azure Container Instances om snel en eenvoudig serverloze Docker-containers uit te voeren in Azure. Een toepassing implementeren in een containerinstantie op aanvraag, wanneer u geen volledig indelingsplatform voor containers nodig hebt zoals Azure Kubernetes Service.

In deze quickstart gebruikt u de Azure CLI om een geïsoleerde Docker-container te implementeren en de toepassing beschikbaar te maken met een FQDN (Fully Qualified Domain Name). Een paar seconden nadat u één implementatieopdracht hebt uitgevoerd, kunt u bladeren naar de toepassing die wordt uitgevoerd in de container:

Een app weergeven die is geïmplementeerd in Azure Container Instances in de browser

Als u geen Azure-account hebt, maak dan een gratis account aan voordat u begint.

Vereiste voorwaarden

  • Voor deze quickstart is versie 2.0.55 of hoger van de Azure CLI vereist. Als u Azure Cloud Shell gebruikt, is de nieuwste versie al geïnstalleerd.

    Waarschuwing

    Best practice: gebruikersgegevens die worden doorgegeven via de command line interface (CLI) worden opgeslagen als platte tekst in de backend. Het opslaan van referenties in tekst zonder opmaak is een beveiligingsrisico; Microsoft adviseert klanten om gebruikersreferenties op te slaan in cli-omgevingsvariabelen om ervoor te zorgen dat ze worden versleuteld/getransformeerd wanneer ze zijn opgeslagen in de back-end.

Een brongroep maken

Azure-containerinstanties, zoals alle Azure-resources, moeten worden geïmplementeerd in een resourcegroep. Met resourcegroepen kunt u gerelateerde Azure-resources organiseren en beheren.

Maak eerst een resourcegroep met de naam myResourceGroup op de locatie eastus met de opdracht az group create :

az group create --name myResourceGroup --location eastus

Een container maken

Nu u een resourcegroep hebt, kunt u een container uitvoeren in Azure. Als u een containerinstantie wilt maken met de Azure CLI, geeft u een resourcegroepnaam, de naam van de containerinstantie en de Docker-containerimage op voor de opdracht az container create. In deze snelstartgids gebruikt u de openbare mcr.microsoft.com/azuredocs/aci-helloworld afbeelding. Deze afbeelding verpakt een kleine web-app die is geschreven in Node.js die een statische HTML-pagina dient.

U kunt uw containers beschikbaar maken op internet door een of meer poorten op te geven die moeten worden geopend, een DNS-naamlabel of beide. In deze quickstart implementeert u een container met een DNS-naamlabel, zodat de web-app openbaar bereikbaar is.

Voer een opdracht uit zoals hieronder om een containerinstantie te starten. Stel een --dns-name-label waarde in die uniek is binnen de Azure-regio waar u het exemplaar maakt. Als u een foutbericht 'DNS-naamlabel niet beschikbaar' ontvangt, probeert u een ander DNS-naamlabel.

az container create --resource-group myResourceGroup --name mycontainer --image mcr.microsoft.com/azuredocs/aci-helloworld --dns-name-label aci-demo --ports 80 --os-type linux --memory 1.5 --cpu 1

Als u de container wilt implementeren in een specifieke beschikbaarheidszone, gebruikt u het --zone argument en geeft u het nummer van de logische zone op:

az container create --resource-group myResourceGroup --name mycontainer --image mcr.microsoft.com/azuredocs/aci-helloworld --dns-name-label aci-demo --ports 80 --os-type linux --memory 1.5 --cpu 1 --zone 1

Belangrijk

Zonegebonden implementaties zijn alleen beschikbaar in regio's die beschikbaarheidszones ondersteunen. Als u wilt zien of uw regio beschikbaarheidszones ondersteunt, raadpleegt u de lijst met Azure-regio's.

Binnen een paar seconden krijgt u een reactie van de Azure CLI die aangeeft dat de implementatie is voltooid. Controleer de status ervan met de opdracht az container show :

az container show --resource-group myResourceGroup --name mycontainer --query "{FQDN:ipAddress.fqdn,ProvisioningState:provisioningState}" --out table

Wanneer u de opdracht uitvoert, worden de FQDN(Fully Qualified Domain Name) van de container en de inrichtingsstatus weergegeven.

FQDN                               ProvisioningState
---------------------------------  -------------------
aci-demo.eastus.azurecontainer.io  Succeeded

Als de container ProvisioningStateis geslaagd, gaat u naar de FQDN in uw browser. Als u een webpagina ziet die lijkt op het volgende, gefeliciteerd! U hebt een toepassing geïmplementeerd die wordt uitgevoerd in een Docker-container naar Azure.

Een app weergeven die is geïmplementeerd in Azure Container Instances in de browser

Als de toepassing in eerste instantie niet wordt weergegeven, moet u mogelijk een paar seconden wachten terwijl DNS wordt doorgegeven en probeer vervolgens uw browser te vernieuwen.

De containerlogboeken ophalen

Wanneer u problemen met een container of de toepassing die erop wordt uitgevoerd wilt oplossen (of alleen de uitvoer daarvan wilt zien), bekijkt u eerst de logboeken van het containerexemplaar.

Haal de containerinstantie-logboeken op met de opdrachtaz container logs:

az container logs --resource-group myResourceGroup --name mycontainer

In de uitvoer worden de logboeken voor de container weergegeven en moeten de HTTP GET-aanvragen worden weergegeven die worden gegenereerd wanneer u de toepassing in uw browser hebt bekeken.

listening on port 80
::ffff:10.240.255.55 - - [21/Mar/2019:17:43:53 +0000] "GET / HTTP/1.1" 304 - "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36"
::ffff:10.240.255.55 - - [21/Mar/2019:17:44:36 +0000] "GET / HTTP/1.1" 304 - "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36"
::ffff:10.240.255.55 - - [21/Mar/2019:17:44:36 +0000] "GET / HTTP/1.1" 304 - "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36"

Uitvoerstromen koppelen

Naast het weergeven van de logboeken, kunt u uw lokale standaarduitvoer en standaardfoutuitvoer koppelen met die van de container.

Voer eerst de opdracht az container attach uit om uw lokale console te koppelen aan de uitvoerstreams van de container:

az container attach --resource-group myResourceGroup --name mycontainer

Nadat u deze hebt gekoppeld, vernieuwt u de browser een paar keer om wat meer uitvoer te genereren. Wanneer u klaar bent, koppelt u de console los met Control+C. U zou een uitvoer moeten zien die lijkt op het volgende voorbeeld:

Container 'mycontainer' is in state 'Running'...
(count: 1) (last timestamp: 2019-03-21 17:27:20+00:00) pulling image "mcr.microsoft.com/azuredocs/aci-helloworld"
(count: 1) (last timestamp: 2019-03-21 17:27:24+00:00) Successfully pulled image "mcr.microsoft.com/azuredocs/aci-helloworld"
(count: 1) (last timestamp: 2019-03-21 17:27:27+00:00) Created container
(count: 1) (last timestamp: 2019-03-21 17:27:27+00:00) Started container

Start streaming logs:
listening on port 80

::ffff:10.240.255.55 - - [21/Mar/2019:17:43:53 +0000] "GET / HTTP/1.1" 304 - "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36"
::ffff:10.240.255.55 - - [21/Mar/2019:17:44:36 +0000] "GET / HTTP/1.1" 304 - "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36"
::ffff:10.240.255.55 - - [21/Mar/2019:17:44:36 +0000] "GET / HTTP/1.1" 304 - "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36"
::ffff:10.240.255.55 - - [21/Mar/2019:17:47:01 +0000] "GET / HTTP/1.1" 304 - "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36"
::ffff:10.240.255.56 - - [21/Mar/2019:17:47:12 +0000] "GET / HTTP/1.1" 304 - "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36"

De hulpbronnen opschonen

Wanneer u klaar bent met de container, verwijdert u deze met behulp van de opdracht az container delete :

az container delete --resource-group myResourceGroup --name mycontainer

Voer de opdracht az container list uit om te controleren of de container is verwijderd:

az container list --resource-group myResourceGroup --output table

De container mycontainer mag niet worden weergegeven in de uitvoer van de opdracht. Als u geen andere containers in de resourcegroep hebt, wordt er geen uitvoer weergegeven.

Als u klaar bent met de resourcegroep myResourceGroup en alle resources die deze bevat, verwijdert u deze met de opdracht az group delete :

az group delete --name myResourceGroup

Volgende stappen

In deze snelle start hebt u een Azure-containerinstantie gemaakt met behulp van een openbare Microsoft-afbeelding. Als u zelf een containerinstallatiekopie wilt bouwen en deze wilt implementeren met behulp van een privé Azure Container-register, gaat u verder met de zelfstudie voor Azure Container Instances.

Als u opties wilt uitproberen voor het uitvoeren van containers in een indelingssysteem in Azure, raadpleegt u de quickstarts van Azure Kubernetes Service (AKS ).