Schnellstart: Erstellen einer privaten Containerregistrierung mit Azure PowerShell
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 über Azure PowerShell. Ü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.
Voraussetzungen
Hinweis
Es wird empfohlen, das Azure Az PowerShell-Modul für die Interaktion mit Azure zu verwenden. Informationen zu den ersten Schritten finden Sie unter Installieren von Azure PowerShell. Informationen zum Migrieren zum Az PowerShell-Modul finden Sie unter Migrieren von Azure PowerShell von AzureRM zum Az-Modul.
Für diese Schnellstartanleitung ist das Azure PowerShell-Modul erforderlich. Führen Sie Get-Module -ListAvailable Az
aus, um Ihre installierte Version zu ermitteln. Wenn Sie eine Installation oder ein Upgrade ausführen müssen, finden Sie unter Install and configure Azure PowerShell (Installieren des Azure PowerShell-Moduls) Informationen dazu.
Darüber hinaus muss Docker lokal installiert sein. Docker stellt Pakete für macOS-, Windows- und Linux-Systeme bereit.
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.
Anmelden bei Azure
Melden Sie sich mit dem Befehl Connect-AzAccount bei Ihrem Azure-Abonnement an, und befolgen Sie die Anweisungen auf dem Bildschirm.
Connect-AzAccount
Ressourcengruppe erstellen
Erstellen Sie nach Abschluss der Authentifizierung bei Azure mit New-AzResourceGroup eine Ressourcengruppe. Eine Ressourcengruppe ist ein logischer Container, in dem Sie Azure-Ressourcen bereitstellen und verwalten.
New-AzResourceGroup -Name myResourceGroup -Location EastUS
Erstellen einer Containerregistrierung
Erstellen Sie nun mit dem Befehl New-AzContainerRegistry eine Containerregistrierung in Ihrer neuen Ressourcengruppe.
Der Registrierungsname muss innerhalb von Azure eindeutig sein und zwischen 5 und 50 alphanumerische Zeichen enthalten. Im folgenden Beispiel wird eine Registrierung mit dem Namen „mycontainerregistry“ erstellt. Ersetzen Sie mycontainerregistry im folgenden Befehl, und führen Sie diesen dann zum Erstellen der Registrierung aus:
$registry = New-AzContainerRegistry -ResourceGroupName "myResourceGroup" -Name "mycontainerregistry" -EnableAdminUser -Sku Basic
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 mit dem Cmdlet Connect-AzContainerRegistry bei der Registrierung anmelden. Im folgenden Beispiel werden die gleichen Anmeldeinformationen verwendet, mit denen Sie sich bei der Authentifizierung bei Azure mit dem Cmdlet Connect-AzAccount
angemeldet haben.
Hinweis
Im folgenden Beispiel ist der Wert von $registry.Name
der Ressourcenname, nicht der vollqualifizierte Registrierungsname.
Connect-AzContainerRegistry -Name $registry.Name
Der Befehl gibt nach Abschluss des Vorgangs 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 <registrierungsname>.azurecr.io (nur Kleinbuchstaben) angegeben (Beispiel: 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
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 in dieser Schnellstartanleitung erstellten Ressourcen nicht mehr benötigen, verwenden Sie den Befehl Remove-AzResourceGroup, um die Ressourcengruppe, die Containerregistrierung und die darin gespeicherten Containerimages zu entfernen:
Remove-AzResourceGroup -Name myResourceGroup
Nächste Schritte
In dieser Schnellstartanleitung haben Sie mit Azure PowerShell eine Azure Container Registry-Instanz erstellt, ein Containerimage per Push ü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.