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 maakt u de bijbehorende toepassing beschikbaar met een FQDN (Fully Qualified Domain Name). Een paar seconden na het uitvoeren van de opdracht voor één implementatie kunt u naar de toepassing browsen die wordt uitgevoerd in de container:
Als u geen Azure-abonnement hebt, kunt u een gratis Azure-account maken voordat u begint.
Vereisten
Gebruik de Bash-omgeving in Azure Cloud Shell. Zie quickstart voor Bash in Azure Cloud Shell voor meer informatie.
Installeer de Azure CLI, indien gewenst, om CLI-referentieopdrachten uit te voeren. Als u in Windows of macOS werkt, kunt u Azure CLI uitvoeren in een Docker-container. Zie De Azure CLI uitvoeren in een Docker-container voor meer informatie.
Als u een lokale installatie gebruikt, meldt u zich aan bij Azure CLI met behulp van de opdracht az login. Volg de stappen die worden weergegeven in de terminal, om het verificatieproces te voltooien. Raadpleeg Aanmelden bij Azure CLI voor aanvullende aanmeldingsopties.
Installeer de Azure CLI-extensie bij het eerste gebruik, wanneer u hierom wordt gevraagd. Raadpleeg Extensies gebruiken met Azure CLI voor meer informatie over extensies.
Voer az version uit om de geïnstalleerde versie en afhankelijke bibliotheken te vinden. Voer az upgrade uit om te upgraden naar de nieuwste versie.
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: de referenties van de gebruiker die worden doorgegeven via de opdrachtregelinterface (CLI) worden opgeslagen als tekst zonder opmaak in de back-end. 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 Container Instances, zoals alle Azure-resources, moeten worden geïmplementeerd in een resourcegroep. Met resourcegroepen kunt u gerelateerde Azure-resources ordenen en beheren.
Maak eerst een resourcegroep met de naam myResourceGroup in de locatie eastus met behulp van de opdracht az group create:
az group create --name myResourceGroup --location eastus
Een container maken
Nu u een resourcegroep hebt, kunt u een container in Azure uitvoeren. Als u een containerinstantie met de Azure CLI wilt maken, geeft u de naam van een resourcegroep, de naam van een containerinstantie en een Docker-containerinstallatiekopie op voor de opdracht az container create. In deze quickstart gebruikt u de openbare installatiekopie mcr.microsoft.com/azuredocs/aci-helloworld
. Deze installatiekopie bevat een kleine web-app geschreven in Node.js die een statische HTML-pagina levert.
Als u uw containers beschikbaar wilt maken op internet, moet u een of meer poorten om te openen of een DNS-naamlabel opgeven, of beide. In deze quickstart implementeert u een container met een DNS-naamlabel zodat de web-app openbaar bereikbaar is.
Voer een opdracht uit die er als volgt uitziet om een containerinstantie te starten. Stel een --dns-name-label
-waarde in die uniek is voor de Azure-regio waarin u de instantie 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
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) en de inrichtingsstatus van de container weergegeven.
FQDN ProvisioningState
--------------------------------- -------------------
aci-demo.eastus.azurecontainer.io Succeeded
Als de ProvisioningState
van de container Geslaagd is, gaat u naar de FQDN in de browser. U moet nu een webpagina zien die lijkt op de volgende. U hebt een toepassing geïmplementeerd die wordt uitgevoerd in een Docker-container naar Azure.
Als de toepassing niet meteen wordt weergegeven, moet u mogelijk een paar seconden wachten terwijl DNS wordt doorgegeven. Probeer vervolgens de browser te vernieuwen.
De containerlogboeken ophalen
Wanneer u problemen moet oplossen voor een container of de toepassing die daarmee wordt uitgevoerd, of als u alleen de uitvoer wilt zien, kunt u eerst de logboeken van de containerinstantie bekijken.
Haal de logboeken van de containerinstantie op met de opdracht az container logs:
az container logs --resource-group myResourceGroup --name mycontainer
De uitvoer geeft de logboeken voor de container weer, evenals de HTTP GET-aanvragen die worden gegenereerd wanneer u de toepassing in uw browser weergeeft.
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
Behalve het bekijken van de logboeken kunt u ook uw lokale standaarduitvoer- en standaardgegevensstromen met fouten koppelen aan die van de container.
Voer eerst de opdracht az container attach uit om uw lokale console aan de uitvoerstromen van de container te koppelen:
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, ontkoppelt u ten slotte de console met Control+C
. De uitvoer ziet er uit als in het volgende uittreksel:
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"
Resources opschonen
Wanneer u klaar bent met de container, verwijdert u deze met 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 hierin, verwijdert u deze met de opdracht az group delete:
az group delete --name myResourceGroup
Volgende stappen
In deze quickstart hebt u een Azure-containerinstantie gemaakt met behulp van een openbare Microsoft-installatiekopie. 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.
Raadpleeg de quickstarts voor Azure Kubernetes Service (AKS), als u opties wilt proberen voor het uitvoeren van containers in een indelingssysteem in Azure.