Schnellstart: Ausführen einer Containeranwendung in Azure Container Instances mit der Azure-BefehlszeilenschnittstelleQuickstart: Run a container application in Azure Container Instances with the Azure CLI

Führen Sie mithilfe von Azure Container Instances Docker-Container schnell und einfach in Azure aus.Use Azure Container Instances to run Docker containers in Azure with simplicity and speed. Sie müssen keine virtuellen Computer bereitstellen und keine vollständige Containerorchestrierungsplattform wie Kubernetes verwenden.You don't need to deploy virtual machines or use a full container orchestration platform like Kubernetes. In dieser Schnellstartanleitung erstellen Sie mithilfe der Azure-Befehlszeilenschnittstelle einen Container in Azure und machen seine Anwendung mit einem vollqualifizierten Domänennamen (Fully Qualified Domain Name, FQDN) verfügbar.In this quickstart, you use the Azure CLI to create a container in Azure and make its application available with a fully qualified domain name (FQDN). Einige Sekunden nach dem Ausführen eines einzigen Bereitstellungsbefehls können Sie zur ausgeführten Anwendung navigieren:A few seconds after you execute a single deployment command, you can browse to the running application:

In Azure Container Instances bereitgestellte App im Browser

Wenn Sie kein Azure-Abonnement besitzen, können Sie ein kostenloses Konto erstellen, bevor Sie beginnen.If you don't have an Azure subscription, create a free account before you begin.

Öffnen von Azure Cloud ShellOpen Azure Cloud Shell

Azure Cloud Shell ist eine kostenlose interaktive Shell, mit der Sie die Schritte in diesem Artikel ausführen können.Azure Cloud Shell is a free, interactive shell that you can use to run the steps in this article. Allgemeine Tools sind in Cloud Shell vorinstalliert und für die Verwendung mit Ihrem Konto konfiguriert.Common Azure tools are preinstalled and configured in Cloud Shell for you to use with your account. Klicken Sie einfach auf die Schaltfläche Kopieren, um den Code zu kopieren. Fügen Sie ihn anschließend in Cloud Shell ein, und drücken Sie die EINGABETASTE, um ihn auszuführen.Just select the Copy button to copy the code, paste it in Cloud Shell, and then press Enter to run it. Cloud Shell kann auf mehrere Arten geöffnet werden:There are a few ways to open Cloud Shell:

Klicken Sie in der rechten oberen Ecke eines Codeblocks auf Ausprobieren.Select Try It in the upper-right corner of a code block. Cloud Shell in diesem Artikel
Öffnen Sie Cloud Shell in Ihrem Browser.Open Cloud Shell in your browser. https://shell.azure.com/bash
Klicken Sie im Azure-Portal rechts oben im Menü auf die Schaltfläche Cloud Shell:Select the Cloud Shell button on the menu in the upper-right corner of the Azure portal. Cloud Shell im Portal

Sie können Azure Cloud Shell oder eine lokale Installation der Azure CLI für diesen Schnellstart verwenden.You can use the Azure Cloud Shell or a local installation of the Azure CLI to complete this quickstart. Für die lokale Verwendung benötigen Sie mindestens Version 2.0.27.If you'd like to use it locally, you need version 2.0.27 or later. Führen Sie az --version aus, um die Version zu finden.Run az --version to find the version. Wenn Sie eine Installation oder ein Upgrade ausführen müssen, finden Sie unter Installieren von Azure CLI 2.0 Informationen dazu.If you need to install or upgrade, see Install Azure CLI.

Erstellen einer RessourcengruppeCreate a resource group

Azure Container Instances muss wie alle Azure-Ressourcen in einer Ressourcengruppe bereitgestellt werden.Azure container instances, like all Azure resources, must be deployed into a resource group. Mit Ressourcengruppen können verwandte Azure-Ressourcen organisiert und verwaltet werden.Resource groups allow you to organize and manage related Azure resources.

Erstellen Sie zunächst mit dem folgenden Befehl az group create eine Ressourcengruppe namens myResourceGroup am Standort eastus:First, create a resource group named myResourceGroup in the eastus location with the following az group create command:

az group create --name myResourceGroup --location eastus

Erstellen eines ContainersCreate a container

Sie besitzen eine Ressourcengruppe und können nun einen Container in Azure ausführen.Now that you have a resource group, you can run a container in Azure. Geben Sie zum Erstellen einer Containerinstanz mit der Azure-Befehlszeilenschnittstelle einen Ressourcengruppennamen, einen Containerinstanznamen und ein Docker-Containerimage im Befehl az container create an.To create a container instance with the Azure CLI, provide a resource group name, container instance name, and Docker container image to the az container create command. Sie können Ihre Container über das Internet verfügbar machen, indem Sie mindestens einen zu öffnenden Port und/oder eine DNS-Namensbezeichnung angeben.You can expose your containers to the internet by specifying one or more ports to open, a DNS name label, or both. In dieser Schnellstartanleitung stellen Sie einen Container mit einer DNS-Namensbezeichnung bereit, der eine kleine in Node.js geschriebene Web-App hostet.In this quickstart, you deploy a container with a DNS name label that hosts a small web app written in Node.js.

Führen Sie den folgenden Befehl aus, um eine Containerinstanz zu starten.Execute the following command to start a container instance. Der Wert --dns-name-label muss innerhalb der Azure-Region, in der Sie die Instanz erstellen, eindeutig sein.The --dns-name-label value must be unique within the Azure region you create the instance. Wird die Fehlermeldung „DNS-Namensbezeichnung ist nicht verfügbar.“ angezeigt, verwenden Sie eine andere DNS-Namensbezeichnung.If you receive a "DNS name label not available" error message, try a different DNS name label.

az container create --resource-group myResourceGroup --name mycontainer --image microsoft/aci-helloworld --dns-name-label aci-demo --ports 80

Sie sollten innerhalb weniger Sekunden eine Antwort von der Azure-Befehlszeilenschnittstelle mit dem Hinweis erhalten, dass die Bereitstellung abgeschlossen wurde.Within a few seconds, you should get a response from the Azure CLI indicating that the deployment has completed. Überprüfen Sie den Status mit dem Befehl az container show:Check its status with the az container show command:

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

Wenn Sie den Befehl ausführen, werden der vollständig qualifizierte Domänenname (Fully Qualified Domain Name, FQDN) des Containers und der Bereitstellungsstatus angezeigt.When you run the command, the container's fully qualified domain name (FQDN) and its provisioning state are displayed.

$ az container show --resource-group myResourceGroup --name mycontainer --query "{FQDN:ipAddress.fqdn,ProvisioningState:provisioningState}" --out table
FQDN                               ProvisioningState
---------------------------------  -------------------
aci-demo.eastus.azurecontainer.io  Succeeded

Wenn der Wert ProvisioningState des Containers Erfolgreich lautet, navigieren Sie in Ihrem Browser zu seinem FQDN.If the container's ProvisioningState is Succeeded, navigate to its FQDN in your browser. Wird etwa folgende Webseite angezeigt, war der Vorgang erfolgreich.If you see a web page similar to the following, congratulations! Sie haben eine in einem Docker-Container ausgeführte Anwendung in Azure bereitgestellt.You've successfully deployed an application running in a Docker container to Azure.

Screenshot eines Browsers mit ausgeführter Anwendung in einer Azure-Containerinstanz

Sollte die Anwendung nicht sofort angezeigt werden, warten Sie einige Sekunden, bis die DNS-Auffüllung abgeschlossen ist, und aktualisieren Sie anschließend Ihren Browser.If at first the application isn't displayed, you might need to wait a few seconds while DNS propagates, then try refreshing your browser.

Herunterladen der ContainerprotokollePull the container logs

Wenn Sie ein Problem mit einem Container oder der darin ausgeführten Anwendung beheben (oder nur seine Ausgabe anzeigen) müssen, sehen Sie sich zuerst die Protokolle der Containerinstanz an.When you need to troubleshoot a container or the application it runs (or just see its output), start by viewing the container instance's logs.

Verwenden Sie den Befehl az container logs, um die Protokolle der Containerinstanz per Pull abzurufen:Pull the container instance logs with the az container logs command:

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

Die Ausgabe enthält die Protokolle für den Container und sollte die HTTP GET-Anforderungen anzeigen, die beim Betrachten der Anwendung in Ihrem Browser generiert wurden.The output displays the logs for the container, and should show the HTTP GET requests generated when you viewed the application in your browser.

$ az container logs --resource-group myResourceGroup --name mycontainer
listening on port 80
::ffff:10.240.255.105 - - [01/Oct/2018:18:25:51 +0000] "GET / HTTP/1.0" 200 1663 "-" "-"
::ffff:10.240.255.106 - - [01/Oct/2018:18:31:04 +0000] "GET / HTTP/1.1" 200 1663 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36"
::ffff:10.240.255.106 - - [01/Oct/2018:18:31:04 +0000] "GET /favicon.ico HTTP/1.1" 404 150 "http://aci-demo.eastus.azurecontainer.io/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36"

Anfügen von AusgabestreamsAttach output streams

Zusätzlich zum Anzeigen der Protokolle können Sie Ihre lokalen Standardausgabestreams und Standardfehlerstreams an die Streams des Containers anfügen.In addition to viewing the logs, you can attach your local standard out and standard error streams to that of the container.

Führen Sie zunächst den Befehl az container attach aus, um Ihrer lokalen Konsole die Ausgabestreams des Containers anzufügen:First, execute the az container attach command to attach your local console the container's output streams:

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

Aktualisieren Sie nach dem Anfügen mehrmals Ihren Browser, um zusätzliche Ausgaben zu generieren.Once attached, refresh your browser a few times to generate some additional output. Trennen Sie anschließend Ihre Konsole mit Control+C.When you're done, detach your console with Control+C. Eine Ausgabe ähnlich der folgenden sollte angezeigt werden:You should see output similar to the following:

$ az container attach --resource-group myResourceGroup -n mycontainer
Container 'mycontainer' is in state 'Running'...
(count: 1) (last timestamp: 2018-03-15 21:17:59+00:00) pulling image "microsoft/aci-helloworld"
(count: 1) (last timestamp: 2018-03-15 21:18:05+00:00) Successfully pulled image "microsoft/aci-helloworld"
(count: 1) (last timestamp: 2018-03-15 21:18:05+00:00) Created container with id 3534a1e2ee392d6f47b2c158ce8c1808d1686fc54f17de3a953d356cf5f26a45
(count: 1) (last timestamp: 2018-03-15 21:18:06+00:00) Started container with id 3534a1e2ee392d6f47b2c158ce8c1808d1686fc54f17de3a953d356cf5f26a45

Start streaming logs:
listening on port 80
::ffff:10.240.255.105 - - [15/Mar/2018:21:18:26 +0000] "GET / HTTP/1.1" 200 1663 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.146 Safari/537.36"
::ffff:10.240.255.105 - - [15/Mar/2018:21:18:26 +0000] "GET /favicon.ico HTTP/1.1" 404 150 "http://aci-demo.eastus.azurecontainer.io/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.146 Safari/537.36"
::ffff:10.240.255.107 - - [15/Mar/2018:21:18:44 +0000] "GET / HTTP/1.1" 304 - "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.146 Safari/537.36"
::ffff:10.240.255.107 - - [15/Mar/2018:21:18:47 +0000] "GET / HTTP/1.1" 304 - "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.146 Safari/537.36"

Bereinigen von RessourcenClean up resources

Wenn Sie den Container nicht mehr benötigen, entfernen Sie ihn mithilfe des Befehls az container delete:When you're done with the container, remove it using the az container delete command:

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

Um sicherzustellen, dass der Container gelöscht wurde, führen Sie den Befehl az container list aus:To verify that the container has been deleted, execute the az container list command:

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

Der Container mycontainer sollte nicht in der Ausgabe des Befehls angezeigt werden.The mycontainer container should not appear in the command's output. Wenn die Ressourcengruppe keine anderen Container enthält, wird keine Ausgabe angezeigt.If you have no other containers in the resource group, no output is displayed.

Wenn Sie die Ressourcengruppe myResourceGroup und alle darin enthaltenen Ressourcen nicht mehr benötigen, löschen Sie sie mit dem Befehl az group delete:If you're done with the myResourceGroup resource group and all the resources it contains, delete it with the az group delete command:

az group delete --name myResourceGroup

Nächste SchritteNext steps

In dieser Schnellstartanleitung haben Sie eine Azure-Containerinstanz mithilfe eines Images in der öffentlichen Docker Hub-Registrierung erstellt.In this quickstart, you created an Azure container instance by using an image in the public Docker Hub registry. Fahren Sie mit dem Azure Container Instances-Tutorial fort, wenn Sie ein Containerimage erstellen und über eine private Azure-Containerregistrierung bereitstellen möchten.If you'd like to build a container image and deploy it from a private Azure container registry, continue to the Azure Container Instances tutorial.

Um Optionen zum Ausführen von Containern in einem Orchestrierungssystem in Azure zu testen, lesen Sie die Schnellstartanleitung für Service Fabric oder Azure Kubernetes Service (AKS).To try out options for running containers in an orchestration system on Azure, see the Service Fabric or Azure Kubernetes Service (AKS) quickstarts.