Bereitstellen des Docker-Images in einer Azure-Containerinstanz

Abgeschlossen

Azure Container Instances ist ein Dienst, mit dem Docker-Images bei Bedarf geladen und ausgeführt werden. Der Azure Container Instances-Dienst kann Images aus einer Registrierung wie Docker Hub oder Azure Container Registry abrufen.

Ihre Organisation möchte Azure verwenden, um ihre Web-Apps auszuführen. Aus diesem Grund ist es sinnvoll, die Images in Azure Container Registry zu speichern und sie mithilfe des Azure Container Instance-Diensts auszuführen.

In dieser Einheit lernen Sie, wie Sie ein Docker-Image in Azure Container Registry hochladen. Anschließend führen Sie das Image mithilfe des Azure-Containerinstanzdiensts aus.

Verwenden von Azure Container Registry zum Speichern eines Containers

Azure Container Registry ist eine Registrierung, die einen von Azure bereitgestellten Dienst hostet. Jede Azure Container Registry-Ressource, die Sie erstellen, ist eine separate Registrierung mit einer eindeutigen URL. Diese Registrierungen sind privat, das heißt, sie erfordern Authentifizierung zum Pushen oder Pullen von Images. Azure Container Registry wird in der Cloud ausgeführt und bietet für andere Azure-Dienste einen ähnlichen Grad an Skalierbarkeit und Verfügbarkeit.

Sie können eine Registrierung über das Azure-Portal oder die Befehlszeilenschnittstelle (CLI) in Azure erstellen. Sie können den Cloud Shell-Dienst im Azure-Portal oder eine lokale Installation der Azure CLI verwenden. Denken Sie daran, dass Sie eine Ressourcengruppe erstellen müssen, bevor Sie eine Registrierung erstellen können. Es wird empfohlen, beim Erstellen einer Ressourcengruppe die nächstgelegene Region auszuwählen. In diesem Beispiel lautet der Name unserer Ressourcengruppe mygroup, und der Standort ist „USA, Westen“.

Sie müssen keinen der folgenden Befehle ausführen. Darum geht es in der nächsten Übung.

Hinweis

Ihr Container muss einen eindeutigen Namen haben. Sie können hier überprüfen, ob ein Name bereits verwendet wird.

az group create --name mygroup --location westus
az acr create --name <unique name> --resource-group mygroup --sku standard --admin-enabled true

Verschiedene SKUs bieten unterschiedliche Grade an Skalierbarkeit und Speicher.

Azure Container Registry-Repositorys sind privat, was bedeutet, dass sie keinen nicht authentifizierten Zugriff unterstützen. Verwenden Sie zum Pullen von Images aus einem Azure Container Registry-Repository den Befehl docker login, und geben Sie die URL des Anmeldeservers für die Registrierung an. Die Anmeldeserver-URL für eine Registrierung in Azure Container Registry weist das Format <registrierungs_name>.azurecr.io auf.

docker login myregistry.azurecr.io

Bei der Docker-Anmeldung werden Sie zur Eingabe eines Benutzernamens und eines Kennworts aufgefordert. Wechseln Sie zum Azure-Portal, und schlagen Sie die Zugriffsschlüssel für die Registrierung nach, oder führen Sie den folgenden Befehl aus, um diese Information zu finden.

az acr credential show --name myregistry --resource-group mygroup

Sie pushen ein Image mithilfe des Befehls docker push von Ihrem lokalen Computer in eine Docker-Registrierung. Vor dem Pushen eines Images müssen Sie ein Alias für das Image erstellen, in dem das Repository und das Tag angegeben werden, das die Docker-Registrierung erstellt. Der Name des Repositorys muss das Format *<anmelde_server>/<image_name>:<tag/> aufweisen. Verwenden Sie den Befehl docker tag, um diesen Vorgang auszuführen. Im folgenden Beispiel wird ein Alias für das Image reservationsystem erstellt.

docker tag reservationsystem myregistry.azurecr.io/reservationsystem:v2

Wenn Sie docker image ls ausführen, sehen Sie zwei Einträge für das Image: einen mit dem ursprünglichen Namen und einen zweiten mit dem neuen Alias.

Nachdem Sie den Tagbefehl ausgeführt haben, können Sie das Image mithilfe des folgenden Befehls in die Registrierung in Azure Container Registry hochladen.

docker push myregistry.azurecr.io/reservationsystem:v2

Überprüfen Sie, ob das Image ordnungsgemäß hochgeladen wurde, indem Sie die Repositorys in der Registrierung mit dem folgenden Befehl auflisten.

az acr repository list --name myregistry --resource-group mygroup

Sie können die Images in der Registrierung auch mit dem Befehl acr repository show auflisten.

az acr repository show --repository reservationsystem --name myregistry --resource-group mygroup

Hinweis

Es werden mindestens zwei Tags für jedes Image in einem Repository angezeigt. Ein Tag ist der Wert, den Sie im Befehl acr build angegeben haben (v1 im Beispiel oben). Das andere Tag ist latest (neueste). Jedes Mal, wenn Sie ein Image neu erstellen, erstellt Azure Container Registry automatisch das Tag latest als Alias für die neueste Version des Images.

Verwenden der Azure-Containerinstanz zum Ausführen eines Images

Der Azure-Containerinstanzdienst kann ein Image aus Azure Container Registry laden und dann in Azure ausführen.

Sie erstellen eine Containerinstanz und starten die Ausführung des Images mit dem Befehl az container create. Geben Sie den Benutzernamen und das Kennwort für die Registrierung in den Parametern registry-username und registry-password an. Der Instanz wird eine IP-Adresse zugeordnet. Sie greifen auf die Instanz mit dieser IP-Adresse zu. Sie können optional einen DNS-Namen angeben, wenn Sie auf die Instanz über eine benutzerfreundlichere Bezeichnung verweisen möchten. Beachten Sie, dass Sie das Image als URL angeben, die auf Ihre Registrierung (myregistry) im Azure Container Registry-Dienst (azurecr.io) verweist. Wenn Sie Docker Hub oder eine andere Registrierung verwenden, ersetzen Sie diese URL durch die URL Ihres Images in dieser Registrierung.

az container create --resource-group mygroup --name myinstance --image myregistry.azurecr.io/myapp:latest --dns-name-label mydnsname --registry-username <username> --registry-password <password>

Azure hostet die Instanz mit einem Domänennamen, der auf der von Ihnen angegebenen DNS-Bezeichnung basiert. Sie können den vollqualifizierten Domänennamen der Instanz ermitteln, indem Sie die IP-Adresse der Instanz abfragen.

az container show --resource-group mygroup --name myinstance --query ipAddress.fqdn

Sie können auf die Anwendung mithilfe eines Webbrowsers zugreifen. Sie können zu der URL navigieren, die von diesem Befehl zurückgegeben wird. In der nächsten Lerneinheit erfahren Sie, wie das geht.