Tutorial: Bereitstellen einer Containeranwendung in Azure Container Instances

Dies ist das letzte Tutorial einer dreiteiligen Reihe. In den vorhergehenden Teilen der Reihe wurde ein Containerimage erstellt und mithilfe von Push an eine Azure Container Registry-Instanz übermittelt. Zum Abschluss der Reihe wird der Container in diesem Tutorial für Azure Container Instances bereitgestellt.

In diesem Tutorial:

  • Bereitstellen des Containers aus Azure Container Registry in Azure Container Instances
  • Anzeigen der ausgeführten Anwendung im Browser
  • Anzeigen der Protokolle des Containers

Voraussetzungen

Für dieses Tutorial müssen folgende Voraussetzungen erfüllt sein:

Azure CLI: Auf dem lokalen Computer muss mindestens Version 2.0.29 der Azure-Befehlszeilenschnittstelle installiert sein. Führen Sie az --version aus, um die Version zu ermitteln. Installations- und Upgradeinformationen finden Sie bei Bedarf unter Installieren von Azure CLI.

Docker: In diesem Tutorial wird vorausgesetzt, dass zentrale Docker-Konzepte wie Container und Containerimages sowie grundlegende docker-Befehle bekannt sind. Eine Einführung in Docker und Container finden Sie in der Docker-Übersicht.

Docker: Für dieses Tutorial muss Docker lokal installiert sein. Für die Docker-Umgebung stehen Konfigurationspakete für macOS, Windows und Linux zur Verfügung.

Wichtig

Da Azure Cloud Shell den Docker-Daemon nicht beinhaltet, müssen Sie sowohl die Azure-Befehlszeilenschnittstelle als auch die Docker-Engine auf Ihrem lokalen Computer installieren, um dieses Tutorial absolvieren zu können. Azure Cloud Shell kann für dieses Tutorial nicht verwendet werden.

Bereitstellen des Containers mithilfe der Azure-Befehlszeilenschnittstelle

In diesem Abschnitt verwenden Sie die Azure CLI zum Bereitstellen des Images, das im ersten Tutorial erstellt und im zweiten Tutorial per Pushvorgang in die Azure Container Registry übertragen wurde. Arbeiten Sie diese Tutorials durch, bevor Sie fortfahren.

Abrufen von Registrierungsanmeldeinformationen

Wenn Sie ein Image bereitstellen, das in einer privaten Azure-Containerregistrierung gehostet wird (wie im zweiten Tutorial), müssen Sie Anmeldeinformationen für den Zugriff auf die Registrierung angeben.

Eine bewährte Methode für viele Szenarien ist das Erstellen und Konfigurieren eines Microsoft Entra-Dienstprinzipals mit Pull-Berechtigungen für Ihre Registrierung. Beispielskripts zum Erstellen eines Dienstprinzipals mit den erforderlichen Berechtigungen finden Sie unter Authentifizieren per Azure Container Registry über Azure Container Instances. Notieren Sie sich die Dienstprinzipal-ID und das zugehörige Kennwort. Sie nutzen diese Anmeldeinformationen zum Zugreifen auf die Registrierung, wenn Sie den Container bereitstellen.

Darüber hinaus benötigen Sie den vollständigen Namen des Anmeldeservers für die Containerregistrierung (ersetzen Sie <acrName> durch den Namen Ihrer Registrierung):

az acr show --name <acrName> --query loginServer

Bereitstellen des Containers

Verwenden Sie nun den Befehl az container create, um den Container bereitzustellen. Ersetzen Sie <acrLoginServer> durch den Wert, den Sie mit dem obigen Befehl abgerufen haben. Ersetzen Sie <service-principal-ID> und <service-principal-password> durch die Dienstprinzipal-ID und das Kennwort, die Sie für den Zugriff auf die Registrierung erstellt haben. Ersetzen Sie <aciDnsLabel> durch einen gewünschten DNS-Namen.

az container create --resource-group myResourceGroup --name aci-tutorial-app --image <acrLoginServer>/aci-tutorial-app:v1 --cpu 1 --memory 1 --registry-login-server <acrLoginServer> --registry-username <service-principal-ID> --registry-password <service-principal-password> --ip-address Public --dns-name-label <aciDnsLabel> --ports 80

Innerhalb weniger Sekunden sollten Sie eine erste Antwort von Azure erhalten. Der Wert --dns-name-label muss innerhalb der Azure-Region, in der Sie die Containerinstanz erstellen, eindeutig sein. Ändern Sie den Wert im vorherigen Befehl, wenn Sie beim Ausführen des Befehls eine Fehlermeldung bezüglich der DNS-Namensbezeichnung erhalten.

Überprüfen des Bereitstellungsstatus

Verwenden Sie zum Anzeigen des Status der Bereitstellung az container show:

az container show --resource-group myResourceGroup --name aci-tutorial-app --query instanceView.state

Führen Sie den Befehl az container show erneut aus, bis der Status nicht mehr Ausstehend, sondern Wird ausgeführt lautet. Das sollte nach maximal einer Minute der Fall sein. Wenn für den Container Wird ausgeführt angezeigt wird, fahren Sie mit dem nächsten Schritt fort.

Anzeigen der Anwendungs- und Containerprotokolle

Wenn die Bereitstellung erfolgreich war, zeigen Sie mit dem Befehl az container show den vollqualifizierten Domänennamen (Fully Qualified Domain Name, FQDN) des Containers an:

az container show --resource-group myResourceGroup --name aci-tutorial-app --query ipAddress.fqdn

Beispiel:

"aci-demo.eastus.azurecontainer.io"

Navigieren Sie zum Anzeigen der ausgeführten Anwendung in Ihrem bevorzugten Browser zum angezeigten DNS-Namen:

„Hello World“-Anwendung im Browser

Sie können auch die Protokollausgabe des Containers anzeigen:

az container logs --resource-group myResourceGroup --name aci-tutorial-app

Beispielausgabe:

listening on port 80
::ffff:10.240.0.4 - - [21/Jul/2017:06:00:02 +0000] "GET / HTTP/1.1" 200 1663 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36"
::ffff:10.240.0.4 - - [21/Jul/2017:06:00:02 +0000] "GET /favicon.ico HTTP/1.1" 404 150 "http://aci-demo.eastus.azurecontainer.io/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36"

Bereinigen von Ressourcen

Wenn Sie die in dieser Tutorialreihe erstellten Ressourcen nicht mehr benötigen, können Sie den Befehl az group delete ausführen, um die Ressourcengruppe und alle darin enthaltenen Ressourcen zu entfernen. Dieser Befehl löscht die von Ihnen erstellte Containerregistrierung sowie den ausgeführten Container und alle zugehörigen Ressourcen.

az group delete --name myResourceGroup

Nächste Schritte

In diesem Tutorial haben Sie Ihren Container in Azure Container Instances bereitgestellt. Die folgenden Schritte wurden durchgeführt:

  • Bereitstellen des Containers aus der Azure Container Registry-Instanz mithilfe der Azure-Befehlszeilenschnittstelle
  • Anzeigen der Anwendung im Browser
  • Anzeigen der Containerprotokolle

Nachdem Sie sich mit den Grundlagen vertraut gemacht haben, können Sie sich jetzt eingehender über Azure Container Instances informieren, z.B. über die Funktionsweise von Containergruppen:

Containergruppen in Azure Container Instances