Tutorial: Erstellen einer Azure-Containerregistrierung und Übertragen eines Containerimages per Pushvorgang

Dies ist der zweite Teil eines dreiteiligen Tutorials. In Teil 1 des Tutorials wurde ein Docker-Containerimage für eine Node.js-Webanwendung erstellt. In diesem Tutorial übertragen Sie das Image per Pushvorgang an die Azure Container Registry-Instanz. Kehren Sie zu Tutorial 1 – Erstellen von Containerimages zurück, falls Sie das Containerimage noch nicht erstellt haben.

Azure Container Registry ist Ihre private Docker-Registrierung in Azure. Dieser zweite Teil der Tutorialreihe umfasst Folgendes:

  • Erstellen einer Azure Container Registry-Instanz mit der Azure-Befehlszeilenschnittstelle
  • Markieren eines Containerimages für Ihre Azure Container Registry-Instanz
  • Hochladen des Images in Ihre Registrierung

Im nächsten Artikel (dem letzten Tutorial der Reihe) stellen Sie den Container aus Ihrer privaten Registrierung für Azure Container Instances bereit.

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.

Erstellen einer Azure-Containerregistrierung

Bevor Sie Ihre Containerregistrierung erstellen können, benötigen Sie eine Ressourcengruppe für die Bereitstellung. Eine Azure-Ressourcengruppe ist eine logische Sammlung, in der alle Azure-Ressourcen bereitgestellt und verwaltet werden.

Erstellen Sie mithilfe des Befehls az group create eine Ressourcengruppe. Im folgenden Beispiel wird eine Ressourcengruppe mit dem Namen myResourceGroup in der Region eastus erstellt:

az group create --name myResourceGroup --location eastus

Erstellen Sie nach der Erstellung der Ressourcengruppe mit dem Befehl az acr create eine Azure-Containerregistrierung. Der Containerregistrierungsname muss innerhalb von Azure eindeutig sein und zwischen 5 und 50 alphanumerische Zeichen enthalten. Ersetzen Sie <acrName> durch einen eindeutigen Namen für die Registrierung:

az acr create --resource-group myResourceGroup --name <acrName> --sku Basic

Hier ist ein Teil einer Ausgabe für eine neue Azure-Containerregistrierung mit dem Namen mycontainerregistry082 angegeben:

{
  "creationDate": "2020-07-16T21:54:47.297875+00:00",
  "id": "/subscriptions/<Subscription ID>/resourceGroups/myResourceGroup/providers/Microsoft.ContainerRegistry/registries/mycontainerregistry082",
  "location": "eastus",
  "loginServer": "mycontainerregistry082.azurecr.io",
  "name": "mycontainerregistry082",
  "provisioningState": "Succeeded",
  "resourceGroup": "myResourceGroup",
  "sku": {
    "name": "Basic",
    "tier": "Basic"
  },
  "status": null,
  "storageAccount": null,
  "tags": {},
  "type": "Microsoft.ContainerRegistry/registries"
}

Im restlichen Teil dieses Tutorials wird <acrName> als Platzhalter für den von Ihnen in diesem Schritt gewählten Namen der Containerregistrierung bezeichnet.

Anmelden an der Containerregistrierung

Sie müssen sich bei der Azure-Containerregistrierung anmelden, damit Sie Images mithilfe von Push an sie übertragen können. Verwenden Sie den Befehl az acr login, um den Vorgang abzuschließen. Geben Sie den eindeutigen Namen an, den Sie beim Erstellen der Containerregistrierung gewählt haben.

az acr login --name <acrName>

Beispiel:

az acr login --name mycontainerregistry082

Der Befehl gibt nach Abschluss des Vorgangs Login Succeeded zurück:

Login Succeeded

Markieren von Containerimages

Zum Übertragen eines Containerimages an eine private Registrierung wie Azure Container Registry müssen Sie das Image zuerst mit dem vollständigen Namen des Anmeldeservers für die Registrierung versehen.

Rufen Sie zuerst den vollständigen Namen des Anmeldeservers für Ihre Containerregistrierung ab. Führen Sie den folgenden Befehl az acr show aus, und ersetzen Sie <acrName> durch den Namen der gerade erstellten Registrierung:

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

Dies sieht beispielsweise wie folgt aus, wenn Ihre Registrierung den Namen mycontainerregistry082 hat:

az acr show --name mycontainerregistry082 --query loginServer --output table
Result
------------------------
mycontainerregistry082.azurecr.io

Zeigen Sie die Liste mit Ihren lokalen Images mit dem Befehl docker images an:

docker images

Neben den anderen Images, die auf Ihrem Computer vorhanden sind, sollte das Image aci-tutorial-app angezeigt werden, das Sie im vorherigen Tutorial erstellt haben:

docker images
REPOSITORY          TAG       IMAGE ID        CREATED           SIZE
aci-tutorial-app    latest    5c745774dfa9    39 minutes ago    68.1 MB

Kennzeichnen Sie das Image aci-tutorial-app mit dem Anmeldeserver der Containerregistrierung. Fügen Sie außerdem das Tag :v1 am Ende des Imagenamens hinzu, um die Versionsnummer für das Image anzugeben. Ersetzen Sie <acrLoginServer> durch das Ergebnis des zuvor ausgeführten Befehls az acr show.

docker tag aci-tutorial-app <acrLoginServer>/aci-tutorial-app:v1

Führen Sie docker images erneut aus, um zu überprüfen, ob die Kennzeichnung erfolgreich war:

docker images
REPOSITORY                                            TAG       IMAGE ID        CREATED           SIZE
aci-tutorial-app                                      latest    5c745774dfa9    39 minutes ago    68.1 MB
mycontainerregistry082.azurecr.io/aci-tutorial-app    v1        5c745774dfa9    7 minutes ago     68.1 MB

Übertragen des Images zu Azure Container Registry mithilfe von Push

Nachdem Sie das Image aci-tutorial-app jetzt mit dem vollständigen Namen des Anmeldeservers Ihrer privaten Registrierung versehen haben, können Sie es mit dem Befehl docker push per Pushvorgang an die Registrierung übertragen. Ersetzen Sie <acrLoginServer> durch den vollständigen Anmeldeservernamen, den Sie im vorherigen Schritt abgerufen haben.

docker push <acrLoginServer>/aci-tutorial-app:v1

Der push-Vorgang dauert abhängig von der Internetverbindung zwischen einigen Sekunden und wenigen Minuten. Die Ausgabe sieht ungefähr wie folgt aus:

docker push mycontainerregistry082.azurecr.io/aci-tutorial-app:v1
The push refers to a repository [mycontainerregistry082.azurecr.io/aci-tutorial-app]
3db9cac20d49: Pushed
13f653351004: Pushed
4cd158165f4d: Pushed
d8fbd47558a8: Pushed
44ab46125c35: Pushed
5bef08742407: Pushed
v1: digest: sha256:ed67fff971da47175856505585dcd92d1270c3b37543e8afd46014d328f05715 size: 1576

Auflisten der Images in Azure Container Registry

Um sicherzustellen, dass sich das gerade übertragene Image wirklich in Ihrer Azure-Containerregistrierung befindet, können Sie die in der Registrierung enthaltenen Images mit dem Befehl az acr repository list auflisten. Ersetzen Sie <acrName> durch den Namen Ihrer Containerregistrierung.

az acr repository list --name <acrName> --output table

Zum Beispiel:

az acr repository list --name mycontainerregistry082 --output table
Result
----------------
aci-tutorial-app

Verwenden Sie den Befehl az acr repository show-tags, um die Tags für ein bestimmtes Image anzuzeigen.

az acr repository show-tags --name <acrName> --repository aci-tutorial-app --output table

Die Ausgabe sollte etwa folgendermaßen aussehen:

--------
v1

Nächste Schritte

In diesem Tutorial haben Sie eine Azure-Containerregistrierung für die Verwendung mit Azure Container Instances vorbereitet und ein Containerimage mithilfe von Push an die Registrierung übertragen. Die folgenden Schritte wurden durchgeführt:

  • Erstellen einer Azure Container Registry-Instanz mit der Azure-Befehlszeilenschnittstelle
  • Markieren eines Containerimages für Azure Container Registry
  • Hochladen eines Images in Azure Container Registry

Fahren Sie mit dem nächsten Tutorial fort, um zu erfahren, wie Sie den Container in Azure mithilfe von Azure Container Instances bereitstellen: