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 beispielsweise auf eine Registrierung namens myregistry
zuzugreifen, melden Sie sich bei der Azure CLI an, und authentifizieren Sie sich dann bei der 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. Dieses Beispiel pullt das offizielle Nginx-Image.
docker pull nginx
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 nginx
Navigieren Sie zu http://localhost:8080
, um die von NGINX bereitgestellte Standardwebseite im ausgeführten Container anzuzeigen. Eine Seite ähnlich der folgenden wird angezeigt:
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 nginx 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
Empfehlungen
Hier finden Sie weitere Informationen zu den Authentifizierungsoptionen.
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.