Schnellstart: Erstellen einer privaten Containerregistrierung mit der Azure CLI

Azure Container Registry ist ein privater Registrierungsdienst zum Erstellen, Speichern und Verwalten von Containerimages und verwandten Artefakten. In dieser Schnellstartanleitung erstellen Sie eine Azure Container Registry-Instanz mit der Azure CLI. Übertragen Sie anschließend mithilfe von Docker-Befehlen ein Containerimage per Push in die Registrierung. Rufen Sie abschließend das Image per Pull aus der Registrierung ab, und führen Sie es aus.

Für diese Schnellstartanleitung müssen Sie die Azure-Befehlszeilenschnittstelle (Version 2.0.55 empfohlen) ausführen. Führen Sie az --version aus, um die Version zu ermitteln. Informationen zum Durchführen einer Installation oder eines Upgrades finden Sie bei Bedarf unter Installieren der Azure CLI.

Darüber hinaus muss Docker lokal installiert sein. Für Docker sind Pakete erhältlich, mit denen Docker auf einem macOS-, Windows- oder Linux-System problemlos konfiguriert werden kann.

Da Azure Cloud Shell nicht alle erforderlichen Docker-Komponenten (z.B. den dockerd-Daemon) enthält, können Sie Cloud Shell für diesem Schnellstart nicht verwenden.

Erstellen einer Ressourcengruppe

Erstellen Sie mithilfe des Befehls az group create eine Ressourcengruppe. Eine Azure-Ressourcengruppe ist ein logischer Container, in dem Azure-Ressourcen bereitgestellt und verwaltet werden.

Das folgende Beispiel erstellt eine Ressourcengruppe mit dem Namen myResourceGroup am Standort eastus.

az group create --name myResourceGroup --location eastus

Erstellen einer Containerregistrierung

In dieser Schnellstartanleitung erstellen Sie eine Registrierung vom Typ Basic. Dabei handelt es sich um eine kostenoptimierte Option für Entwickler, die sich mit Azure Container Registry vertraut machen. Ausführliche Informationen zu verfügbaren Dienstebenen finden Sie unter Container Registry-Dienstebenen.

Erstellen Sie mithilfe des Befehls az acr create eine ACR-Instanz. Der Registrierungsname muss innerhalb von Azure eindeutig sein und zwischen 5 und 50 alphanumerische Zeichen enthalten. Im folgenden Beispiel wird der Name myContainerRegistry007 verwendet. Ersetzen Sie diesen Namen durch einen eindeutigen Wert.

az acr create --resource-group myResourceGroup \
  --name myContainerRegistry007 --sku Basic

Wenn die Registrierung erstellt wird, sieht die Ausgabe etwa wie folgt aus:

{
  "adminUserEnabled": false,
  "creationDate": "2019-01-08T22:32:13.175925+00:00",
  "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.ContainerRegistry/registries/myContainerRegistry007",
  "location": "eastus",
  "loginServer": "mycontainerregistry007.azurecr.io",
  "name": "myContainerRegistry007",
  "provisioningState": "Succeeded",
  "resourceGroup": "myResourceGroup",
  "sku": {
    "name": "Basic",
    "tier": "Basic"
  },
  "status": null,
  "storageAccount": null,
  "tags": {},
  "type": "Microsoft.ContainerRegistry/registries"
}

Beachten Sie loginServer in der Ausgabe. Dabei handelt es sich um den vollqualifizierten Registrierungsnamen (nur Kleinbuchstaben). Für den restlichen Teil dieser Schnellstartanleitung wird <registry-name> als Platzhalter für den Namen der Containerregistrierung verwendet, und <login-server> ist ein Platzhalter für den Anmeldeservernamen der Registrierung.

Tipp

In dieser Schnellstartanleitung erstellen Sie eine Registrierung vom Typ Basic. Dabei handelt es sich um eine kostenoptimierte Option für Entwickler, die sich mit Azure Container Registry vertraut machen. Wählen Sie andere Ebenen für einen höheren Speicher- und Imagedurchsatz aus und nutzen Sie Funktionen wie die Verbindung über einen privaten Endpunkt. Ausführliche Informationen zu verfügbaren Dienstebenen (SKUs) finden Sie unter Azure Container Registry-Tarife.

Anmelden bei der Registrierung

Bevor Sie Push- und Pullvorgänge für Containerimages ausführen können, müssen Sie sich bei der Registrierung anmelden. Verwenden Sie hierzu den Befehl az acr login. Geben Sie beim Anmelden bei der Azure CLI nur den Namen der Registrierungsressource an. Verwenden Sie nicht den vollqualifizierten Namen des Anmeldeservers.

az acr login --name <registry-name>

Beispiel:

az acr login --name mycontainerregistry

Der Befehl gibt nach Abschluss die Meldung Login Succeeded zurück.

Pushen eines Image in die Registrierung

Um ein Image mithilfe von Push an Ihre Azure Container Registry-Instanz übertragen zu können, benötigen Sie zunächst ein Image. Wenn Sie noch nicht über lokale Containerimages verfügen, führen Sie den folgenden docker pull-Befehl aus, um ein vorhandenes öffentliches Image abzurufen. In diesem Beispiel wird das Image hello-world aus Microsoft Container Registry gepullt.

docker pull mcr.microsoft.com/hello-world

Bevor Sie ein Image mithilfe von Push in Ihre Registrierung übertragen können, müssen Sie es mit dem vollqualifizierten Namen des Anmeldeservers Ihrer Registrierungsinstanz markieren. Der Name des Anmeldeservers wird im Format <registry-name>.azurecr.io (nur Kleinbuchstaben) angegeben, z. B. mycontainerregistry.azurecr.io.

Markieren Sie das Image mithilfe des Befehls docker tag. Ersetzen Sie <login-server> durch den Anmeldeservernamen Ihrer ACR-Instanz.

docker tag mcr.microsoft.com/hello-world <login-server>/hello-world:v1

Beispiel:

docker tag mcr.microsoft.com/hello-world mycontainerregistry.azurecr.io/hello-world:v1

Nun können Sie das Image mit docker push per Pushvorgang an die Registrierungsinstanz übertragen. Ersetzen Sie <login-server> durch den Anmeldeservernamen Ihrer Registrierungsinstanz. In diesem Beispiel wird das Repository hello-world mit dem Image hello-world:v1 erstellt.

docker push <login-server>/hello-world:v1

Nachdem das Image in Ihre Containerregistrierung gepusht wurde, entfernen Sie das Image hello-world:v1 aus Ihrer lokalen Docker-Umgebung. (Beachten Sie, dass der Befehl docker rmi nicht das Image aus dem Repository hello-world in Ihrer Azure-Containerregistrierung entfernt.)

docker rmi <login-server>/hello-world:v1

Auflisten von Containerimages

Im folgenden Beispiel werden die Repositorys in Ihrer Registrierung aufgelistet:

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

Ausgabe:

Result
----------------
hello-world

Das folgende Beispiel listet die Tags des Repositorys hello-world auf.

az acr repository show-tags --name <registry-name> --repository hello-world --output table

Ausgabe:

Result
--------
v1

Ausführen des Images aus der Registrierung

Als Nächstes können Sie das Containerimage hello-world:v1 per Pull abrufen und mithilfe von docker run aus Ihrer Containerregistrierung ausführen:

docker run <login-server>/hello-world:v1  

Beispielausgabe:

Unable to find image 'mycontainerregistry.azurecr.io/hello-world:v1' locally
v1: Pulling from hello-world
Digest: sha256:662dd8e65ef7ccf13f417962c2f77567d3b132f12c95909de6c85ac3c326a345
Status: Downloaded newer image for mycontainerregistry.azurecr.io/hello-world:v1

Hello from Docker!
This message shows that your installation appears to be working correctly.

[...]

Bereinigen von Ressourcen

Wenn Sie die Ressourcengruppe, die Containerregistrierung und die darin gespeicherten Containerimages nicht mehr benötigen, können Sie sie mit dem Befehl az group delete entfernen.

az group delete --name myResourceGroup

Nächste Schritte

In dieser Schnellstartanleitung haben Sie mit der Azure CLI eine Azure Container Registry-Instanz erstellt, ein Containerimage per Push an die Registrierung übertragen und das Image per Pull aus der Registrierung abgerufen und ausgeführt. Fahren Sie mit den Azure Container Registry-Tutorials fort, um eingehendere Informationen zu ACR zu erhalten.