Freigeben über


Schnellstart: Erstellen einer privaten Containerregistrierung mit Azure PowerShell

Azure Container Registry ist ein privater Registrierungsdienst zum Erstellen, Speichern und Verwalten von Containerimages und zugehörigen Artefakten. In dieser Schnellstartanleitung erstellen Sie eine Azure Container-Registrierungsinstanz mithilfe der Azure PowerShell lokal. Anschließend rufen Sie mit der Docker CLI ein Hello-World-Containerimage ab, markieren das Hello-World-Containerimage, um ein neues Containerimage zu erstellen, das neue Containerimage in die Containerregistrierung zu übertragen, das lokale Containerimage zu löschen und schließlich das Image aus Ihrer Registrierung abzurufen und auszuführen.

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 die installierte Version zu ermitteln. Informationen zum Installieren oder Upgrade finden Sie unter Installieren des Azure PowerShell-Moduls.

Sie müssen Docker auch lokal installiert haben. Docker stellt Pakete für macOS-, Windows- und Linux-Systeme bereit.

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

Anmelden bei Azure

Melden Sie sich mit dem Befehl "Connect-AzAccount" bei Ihrem Azure-Abonnement an, und folgen Sie den Anweisungen auf dem Bildschirm.

Connect-AzAccount

Ressourcengruppe erstellen

Nachdem Sie sich bei Azure authentifiziert haben, erstellen Sie eine Ressourcengruppe mit New-AzResourceGroup. Eine Ressourcengruppe ist ein logischer Container, in dem Sie Ihre Azure-Ressourcen bereitstellen und verwalten.

New-AzResourceGroup -Name myResourceGroup -Location EastUS

Erstellen der Containerregistrierung

Erstellen Sie als Nächstes eine Containerregistrierung in Ihrer neuen Ressourcengruppe mit dem Befehl "New-AzContainerRegistry ".

Der Registrierungsname muss in Azure eindeutig sein und 5-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 sie aus, um die Registrierung zu erstellen:

$registry = New-AzContainerRegistry -ResourceGroupName "myResourceGroup" -Name "mycontainerregistry" -EnableAdminUser -Sku Standard -Location EastUS

Tipp

In dieser Schnellstartanleitung erstellen Sie eine Standardregistrierung , die für die meisten Azure Container Registry-Workflows ausreicht. Wählen Sie andere Ebenen für einen erhöhten Speicher- und Bilddurchsatz und Funktionen wie die Verbindung mit einem privaten Endpunkt aus. Ausführliche Informationen zu den verfügbaren Dienststufen (SKUs) finden Sie unter Dienststufen für die Containerregistrierung.

Bei der Registry anmelden

Vor dem Hochladen und Herunterladen von Container-Images müssen Sie sich mit dem Cmdlet Connect-AzContainerRegistry bei Ihrer Registry anmelden. Im folgenden Beispiel werden dieselben Anmeldeinformationen verwendet, mit der Sie bei der Authentifizierung bei Azure mit dem Connect-AzAccount Cmdlet angemeldet sind.

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.

Push-Image in die Registry

Um ein Image an eine Azure Container-Registrierung zu übertragen, müssen Sie zuerst über ein Image verfügen. Wenn Sie noch keine lokalen Containerimages haben, führen Sie den folgenden Docker-Pullbefehl aus, um ein vorhandenes öffentliches Image abzurufen. Rufen Sie in diesem Beispiel das hello-world Image aus der Microsoft-Containerregistrierung ab.

docker pull mcr.microsoft.com/hello-world

Bevor Sie ein Image an Ihre Registrierung übertragen können, müssen Sie es mit dem Docker-Tag mit dem vollqualifizierten Namen Ihres Registrierungsanmeldungsservers markieren.

  • Das Format für den Anmeldeservernamen für geschützte DNL-Registrierungen (Domain Name Label) mit einem enthaltenen eindeutigen DNS-Namenshash lautet mycontainerregistry-abc123.azurecr.io.
  • Das Namensformat des Anmeldeservers für Registrierungen, die mit der Unsecure DNL-Option erstellt wurden, lautet mycontainerregistry.azurecr.io.

Wenn Ihre Registrierung beispielsweise mit dem Tenant Reuse DNL-Bereich erstellt wurde, könnte der Anmeldeserver wie mycontainerregistry-abc123.azurecr.io aussehen, mit einem Hash im DNS-Namen. Wenn Ihre Registrierung mit der Unsecure DNL-Option erstellt wurde, würde der Anmeldeserver mycontainerregistry.azurecr.io ohne den Hash aussehen.

Weitere Informationen zu DNL-Optionen während der Registrierungserstellung und DNS-Namensauswirkungen finden Sie unter "Schnellstart – Registrierung im Portal erstellen".

Beispiel: Markieren eines Bilds vor dem Push

Markieren Sie das Image mithilfe des Befehls docker tag und des Anmeldeservers Ihrer Registrierung.

Taggen eines Image für eine Nicht-DNL-Registrierung:

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

Taggen eines Image für eine DNL-Registrierung:

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

Verwenden Sie schließlich Docker-Push , um das Image an die Registrierungsinstanz zu übertragen. Ersetzen Sie <login-server> durch den Anmeldeservernamen Ihrer Registrierungsinstanz. In diesem Beispiel wird das Hello-World-Repository erstellt, das das hello-world:v1 Bild enthält.

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

Entfernen Sie nach dem Pushen des Images in die Containerregistrierung das hello-world:v1-Image aus Ihrer lokalen Docker-Umgebung. (Beachten Sie, dass dieser Docker rmi-Befehl das Image nicht aus dem Hello-World-Repository in Ihrer Azure-Containerregistrierung entfernt.)

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

Ausführen eines Bilds aus der Registrierung

Jetzt können Sie das hello-world:v1 Containerimage aus Ihrer Containerregistrierung abrufen und ausführen, indem Sie Docker 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

Nachdem Sie mit der Arbeit mit den ressourcen fertig sind, die Sie in dieser Schnellstartanleitung erstellt haben, verwenden Sie den Befehl "Remove-AzResourceGroup ", um die Ressourcengruppe, die Containerregistrierung und die dort gespeicherten Containerimages zu entfernen:

Remove-AzResourceGroup -Name myResourceGroup

Nächste Schritte

In dieser Schnellstartanleitung haben Sie eine Azure Container Registry-Instanz mithilfe der Azure PowerShell lokal erstellt, ein Hello-World-Containerimage abgerufen, das Hello-World-Image markiert, um ein neues Containerimage zu erstellen, das neue Containerimage in die Containerregistrierung verschoben, das lokale Containerimage gelöscht und schließlich das Image aus Ihrer Registrierung abgerufen und ausgeführt. Fahren Sie mit den Lernprogrammen zur Azure-Containerregistrierung fort, um einen tieferen Blick auf ACR zu werfen.