Schnellstart: Bereitstellen einer Containerinstanz in Azure mithilfe der Azure-BefehlszeilenschnittstelleQuickstart: Deploy a container instance in Azure using the Azure CLI

Führen Sie mithilfe von Azure Container Instances serverlose Docker-Container schnell und einfach in Azure aus.Use Azure Container Instances to run serverless Docker containers in Azure with simplicity and speed. Sie stellen eine Anwendung bedarfsgesteuert in einer Containerinstanz bereit, wenn Sie keine vollständige Containerorchestrierungsplattform wie Azure Kubernetes Service benötigen.Deploy an application to a container instance on-demand when you don't need a full container orchestration platform like Azure Kubernetes Service.

In diesem Schnellstart stellen Sie mithilfe der Azure-Befehlszeilenschnittstelle einen isolierten Docker-Container bereit und machen seine Anwendung über einen vollqualifizierten Domänennamen (Fully Qualified Domain Name, FQDN) verfügbar.In this quickstart, you use the Azure CLI to deploy an isolated Docker container 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 im Container navigieren:A few seconds after you execute a single deployment command, you can browse to the application running in the container:

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 interaktive Shell-Umgebung, die in Azure gehostet und über den Browser verwendet wird.Azure Cloud Shell is an interactive shell environment hosted in Azure and used through your browse. Mit Azure Cloud Shell können Sie bash oder PowerShell verwenden, um eine Vielzahl von Tools zum Arbeiten mit Azure-Diensten auszuführen.Azure Cloud Shell allows you to use either bash or PowerShell shells to run a variety of tools to work with Azure services. Azure Cloud Shell ist mit den Befehlen vorinstalliert, damit Sie den Inhalt in diesem Artikel ausführen können. Sie müssen also in der lokalen Umgebung nichts installieren.Azure Cloud Shell comes pre-installed with the commands to allow you to run the content of this article without having to install anything on your local environment.

Um in Azure Cloud Shell Code aus diesem Artikel auszuführen, öffnen Sie eine Cloud Shell-Sitzung, verwenden Sie für einen Codeblock die Schaltfläche Kopieren, um Code zu kopieren, und fügen Sie ihn mit STRG+UMSCHALT+V (Windows und Linux) oder BEFEHL+UMSCHALT+V (macOS) in die Cloud Shell-Sitzung ein.To run any code contained in this article on Azure Cloud Shell, open a Cloud Shell session, use the Copy button on a code block to copy the code, and paste it into the Cloud Shell session with Ctrl+Shift+V on Windows and Linux, or Cmd+Shift+V on macOS. Eingefügter Code wird nicht automatisch ausgeführt. Sie müssen zum Ausführen von Code die EINGABETASTE drücken.Pasted text is not automatically executed, so press Enter to run code.

Sie können Azure Cloud Shell wie folgt starten:You can launch Azure Cloud Shell with:

Klicken Sie in der rechten oberen Ecke eines Codeblocks auf Ausprobieren.Select Try It in the upper-right corner of a code block. Dadurch wird nicht automatisch Text in Cloud Shell kopiert.This doesn't automatically copy text to Cloud Shell. Beispiel für „Testen Sie es.“ für Azure Cloud Shell
Öffnen Sie shell.azure.com in einem Browser.Open shell.azure.com in your browser. Schaltfläche zum Starten von Azure Cloud ShellLaunch Azure Cloud Shell button
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-Schaltfläche im Azure-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 wird mindestens Version 2.0.55 empfohlen.If you'd like to use it locally, version 2.0.55 or later is recommended. 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. In diesem Schnellstart verwenden Sie das öffentliche Image mcr.microsoft.com/azuredocs/aci-helloworld.In this quickstart, you use the public mcr.microsoft.com/azuredocs/aci-helloworld image. Dieses Image verpackt eine kleine in Node.js geschriebene Web-App, die eine statische HTML-Seite bedient.This image packages a small web app written in Node.js that serves a static HTML page.

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 diesem Schnellstart stellen Sie einen Container mit einer DNS-Namensbezeichnung bereit, damit die Web-App öffentlich erreichbar ist.In this quickstart, you deploy a container with a DNS name label so that the web app is publicly reachable.

Führen Sie einen Befehl wie den folgenden aus, um eine Containerinstanz zu starten.Execute a command similar to the following to start a container instance. Der Wert --dns-name-label muss in der Azure-Region, in der Sie die Instanz erstellen, eindeutig sein.Set a --dns-name-label value that's unique within the Azure region where you create the instance. Falls die Fehlermeldung „DNS-Namensbezeichnung ist nicht verfügbar.“ angezeigt wird, sollten Sie eine andere DNS-Namensbezeichnung verwenden.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 mcr.microsoft.com/azuredocs/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.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"

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 Ihre lokale Konsole den Ausgabestreams des Containers anzufügen:First, execute the az container attach command to attach your local console to the container's output streams:

az container attach --resource-group myResourceGroup --name 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 --name mycontainer
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"

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 aus einem öffentlichen Microsoft-Image erstellt.In this quickstart, you created an Azure container instance by using a public Microsoft image. 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 Azure Kubernetes Service (AKS).To try out options for running containers in an orchestration system on Azure, see the Azure Kubernetes Service (AKS) quickstarts.