Pushen des ersten Image in eine Azure-Containerregistrierung mit der Docker CLI

Eine Azure-Containerregistrierung dient zum Speichern und Verwalten privater Containerimages und anderer Artefakte, ähnlich wie in Docker Hub öffentliche Docker-Containerimages gespeichert werden. Sie können die Docker-Befehlszeilenschnittstelle (Docker CLI) für Anmeldung, Push, Pull und andere Vorgänge für Containerimages in Ihrer Containerregistrierung verwenden.

In den folgenden Schritten laden Sie ein öffentliches Nginx-Image herunter, kennzeichnen es für Ihre private Azure-Containerregistrierung und pushen es zuerst in Ihre Registrierung und pullen es dann aus der Registrierung.

Voraussetzungen

  • Azure-Containerregistrierung: Erstellen Sie in Ihrem Azure-Abonnement eine Containerregistrierung. Verwenden Sie beispielsweise das Azure-Portal, die Azure-CLI oder Azure PowerShell.
  • Docker 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.

Anmelden an einer Registrierung

Es gibt verschiedene Möglichkeiten für die Authentifizierung bei Ihrer privaten Containerregistrierung.

Die empfohlene Methode bei Verwendung einer Befehlszeile ist der Azure CLI-Befehl az acr login. Um sich z. B. bei einer Registrierung mit dem Namen myregistry anzumelden, melden Sie sich bei der Azure CLI an und authentifizieren sich dann bei Ihrer Registrierung:

az login
az acr login --name myregistry

Sie können sich auch mit docker login anmelden. Angenommen, Sie haben Ihrer Registrierung für ein Automatisierungsszenario einen Dienstprinzipal zugewiesen. Wenn Sie den folgenden Befehl ausführen, geben Sie bei Aufforderung interaktiv die Haupt-AppID (Benutzername) und das Kennwort des Dienstes an. Best Practices zur Verwaltung von Anmeldeinformationen finden Sie in der Befehlsreferenz Docker-Anmeldung:

docker login myregistry.azurecr.io

Beide Befehle geben nach Abschluss Login Succeeded zurück.

Hinweis

  • Zur schnelleren und komfortableren Anmeldung empfiehlt sich gegebenenfalls die Verwendung von Visual Studio Code mit Docker-Erweiterung.

Tipp

Geben Sie immer den vollqualifizierten Registrierungsnamen (nur Kleinbuchstaben) an, wenn Sie docker login verwenden und Images für die Pushübertragung in Ihre Registrierung kennzeichnen. In den Beispielen in diesem Artikel wird der vollqualifizierte Name myregistry.azurecr.io verwendet.

Pullen eines öffentlichen Nginx-Images

Pullen Sie zunächst das öffentliche Nginx-Image auf Ihren lokalen Computer. In diesem Beispiel wird ein Image aus der Microsoft Container Registry gepullt.

docker pull mcr.microsoft.com/oss/nginx/nginx:1.15.5-alpine

Lokales Ausführen des Containers

Führen Sie den folgenden docker run-Befehl aus, um eine lokale Instanz des Nginx-Containers interaktiv (-it) auf Port 8080 zu starten. Das Argument --rm gibt an, dass der Container entfernt werden soll, wenn Sie ihn beenden.

docker run -it --rm -p 8080:80 mcr.microsoft.com/oss/nginx/nginx:1.15.5-alpine

Navigieren Sie zu http://localhost:8080, um die von NGINX bereitgestellte Standardwebseite im ausgeführten Container anzuzeigen. Eine Seite ähnlich der folgenden wird angezeigt:

Nginx auf lokalem Computer

Da Sie den Container interaktiv mit -it gestartet haben, können Sie nach dem Navigieren im Browser die Ausgabe des Nginx-Servers in der Befehlszeile sehen.

Drücken Sie zum Beenden und Entfernen des Containers die Tastenkombination Control+C.

Erstellen eines Alias des Images

Verwenden Sie docker tag, um einen Alias des Images mit vollqualifiziertem Pfad zur Registrierung zu erstellen. In diesem Beispiel wird der samples-Namespace angegeben, um den Stamm der Registrierung nicht zu überladen.

docker tag mcr.microsoft.com/oss/nginx/nginx:1.15.5-alpine myregistry.azurecr.io/samples/nginx

Weitere Informationen zum Kennzeichnen mit Namespaces finden Sie unter Bewährte Methoden für Azure Container Registry im Abschnitt Repositorynamespaces.

Übertragen des Images per Push in Ihre Registrierung

Nachdem Sie das Image mit dem vollqualifizierten Pfad in Ihrer privaten Registrierung gekennzeichnet haben, können Sie es nun per Pushvorgang mit docker push in die Registrierung übertragen:

docker push myregistry.azurecr.io/samples/nginx

Übertragen des Images aus Ihrer Registrierung per Pull

Verwenden Sie den Befehl docker pull, um das Image per Pullvorgang aus Ihrer Registrierung zu übertragen:

docker pull myregistry.azurecr.io/samples/nginx

Starten des Nginx-Containers

Verwenden Sie den Befehl docker run, um das Image auszuführen, das Sie per Pullvorgang aus der Registrierung übertragen haben:

docker run -it --rm -p 8080:80 myregistry.azurecr.io/samples/nginx

Navigieren Sie zu http://localhost:8080, um den ausgeführten Container anzuzeigen.

Drücken Sie zum Beenden und Entfernen des Containers die Tastenkombination Control+C.

Entfernen des Images (optional)

Wenn Sie das Nginx-Image nicht mehr benötigen, können Sie es mit dem Befehl docker rmi lokal löschen.

docker rmi myregistry.azurecr.io/samples/nginx

Um Images aus Ihrer Azure-Containerregistrierung zu entfernen, können Sie den Azure CLI-Befehl az acr repository delete ausführen. Mit dem folgenden Befehl werden beispielsweise das durch das samples/nginx:latest-Tag referenzierte Manifest, alle eindeutigen Ebenendaten und alle anderen Tags gelöscht, die auf das Manifest verweisen.

az acr repository delete --name myregistry --image samples/nginx:latest

Nächste Schritte

Nachdem Sie sich mit den Grundlagen vertraut gemacht haben, können Sie mit der Verwendung Ihrer Registrierung beginnen! Stellen Sie beispielsweise Containerimages aus Ihrer Registrierung bereit:

Installieren Sie optional die Docker-Erweiterung für Visual Studio Code und die Azure-Kontoerweiterung für die Verwendung mit Ihren Azure-Containerregistrierungen. In Visual Studio Code können Sie Pull- und Pushvorgänge für Images in einer Azure-Containerregistrierung oder auch ACR Tasks ausführen.