Freigeben über


Schnellstart: Erstellen einer Azure-Containerregistrierung über das Azure-Portal

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 das Azure-Portal. Ü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 CLI (mindestens Version 2.0.55 empfohlen) ausführen, um sich bei der Registrierung anmelden und Containerimages verwenden zu können. 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.

Außerdem muss Docker lokal installiert sein, und Daemon muss ausgeführt werden. Für Docker sind Pakete erhältlich, mit denen Docker problemlos auf einem Mac-, Windows- oder Linux-System konfiguriert werden kann.

Anmelden bei Azure

Melden Sie sich beim Azure-Portal an.

Erstellen einer Containerregistrierung

Klicken Sie auf Ressource erstellen>Container>Container Registry.

Navigieren zur Containerregistrierung im Portal

Konfigurieren des Containerregistrierungsnamens und der SKU

Geben Sie auf der Registerkarte Grundlagen Werte für Ressourcengruppe und Registrierungsname ein. Der Registrierungsname muss innerhalb von Azure eindeutig sein und 5-50 alphanumerische Zeichen enthalten, wobei Bindestrichzeichen (-) im Registrierungsnamen nicht zulässig sind. Für diese Schnellstartanleitung erstellen Sie eine neue Ressourcengruppe am Speicherort mit dem West US 2 Namen myResourceGroup, und wählen Sie für SKU die Option Standardaus.

Erstellen einer Containerregistrierung im Portal

Weitere Informationen zu verschiedenen SKU-Optionen finden Sie unter Azure Container Registry SKUs.

DNL-Option (Domain Name Label) konfigurieren

Das Feature Domain Name Label (DNL) stärkt die Sicherheit, indem Subdomänenübernahmeangriffe von Registrierungs-DNS-Namen verhindert werden. Diese Angriffe treten auf, wenn eine Registrierung gelöscht wird, und eine andere Entität verwendet denselben Registrierungsnamen, wodurch nachgeschaltete Verweise möglicherweise aus der Registrierung abgerufen werden, die von der anderen Entität neu erstellt wurden.

DNL behebt dies durch Anfügen eines eindeutigen Hashs an den DNS-Namen der Registrierung. Dadurch wird sichergestellt, dass sich die DNS-Namen aufgrund des eindeutigen Hashs auch dann unterscheiden, wenn derselbe Registrierungsname von einer anderen Entität wiederverwendet wird. Dadurch wird sichergestellt, dass Ihre nachgelagerten Verweise nicht versehentlich auf das von der anderen Entität neu erstellte Registry verweisen.

Wählen Sie beim Erstellen einer Registrierung im Portal den Bereich "Domain Name Label" aus den verfügbaren Optionen aus:

  • Unsicher: Erstellt den DNS-Namen as-isbasierend auf dem Registrierungsnamen (z. B contosoacrregistry.azurecr.io. ). Diese Option enthält keinen DNL-Schutz.
  • Mandantenwiederverwendung: Fügt einen eindeutigen Hash basierend auf dem Mandanten- und Registrierungsnamen an, um sicherzustellen, dass der DNS-Name innerhalb des Mandanten eindeutig ist.
  • Wiederverwendung von Abonnements: Fügt einen eindeutigen Hash basierend auf dem Abonnement,Mandanten und Registrierungsnamen an, um sicherzustellen, dass der DNS-Name innerhalb des Abonnements eindeutig ist.
  • Ressourcengruppenwiederverwendung: Fügt einen eindeutigen Hash basierend auf der Ressourcengruppe, dem Abonnement, dem Mandanten und dem Registrierungsnamen an, um sicherzustellen, dass der DNS-Name innerhalb der Ressourcengruppe eindeutig ist.
  • Keine Wiederverwendung: Generiert einen eindeutigen DNS-Namen mit einem eindeutigen Hash jedes Mal, wenn die Registrierung erstellt wird, unabhängig von anderen Faktoren, um sicherzustellen, dass der DNS-Name immer eindeutig ist.

Hinweis

Unveränderliche Konfiguration: Der während der Registrierungserstellung ausgewählte DNL-Bereich ist dauerhaft und kann später nicht geändert werden. Dadurch wird ein konsistentes DNS-Verhalten gewährleistet und Unterbrechungen bei nachgeschalteten Verweisen verhindert.

Option

DNS-Namensauswirkungen von DNL-Optionen

DNS-Namensformat: Für alle DNL-fähigen Optionen mit Ausnahme von "Unsicher" folgt der DNS-Name dem Format registryname-hash.azurecr.io, wobei der Gedankenstrich (-) als Hashdelineator dient. Um Konflikte zu vermeiden, ist Bindestrich (-) im Registrierungsnamen nicht zulässig. Beispielsweise hat eine Registrierung, die mit dem Tenant Reuse DNL-Bereich benannt contosoacrregistry ist, einen DNS-Namen wie contosoacrregistry-e7ggejfuhzhgedc8.azurecr.io.

Nachgeschaltete Verweise: Der DNS-Name kann sich vom Registrierungsnamen unterscheiden, sodass Aktualisierungen in nachgeschalteten Dateien wie Dockerfiles, Kubernetes YAML und Helm-Diagrammen erforderlich sind, um den vollständigen DNS-Namen mit dem DNL-Hash widerzuspiegeln. Wenn Ihre nachgelagerte Dockerfile-Datei beispielsweise auf eine Registrierung mit dem Namen contosoacrregistry mit dem DNL-Bereich Tenant Reuse verweisen soll, müssen Sie den Verweis auf contosoacrregistry-e7ggejfuhzhgedc8.azurecr.io in Ihrer nachgelagerten Dockerfile-Datei aktualisieren.

Screenshot der Überprüfung der Option

Konfigurieren des Rollenzuweisungsberechtigungsmodus

Konfigurieren Sie den Modus "Rollenzuweisungsberechtigungen" der neuen Registrierung. Diese Option bestimmt, wie die Microsoft Entra-Rollenbasierte Zugriffssteuerung (RBAC) und die Rollenzuweisungen für das Register verwaltet werden, einschließlich der Nutzung von Microsoft Entra-Attributbasierter Zugriffssteuerung (ABAC) für Microsoft Entra-Repository-Berechtigungen.

Wählen Sie "RBAC-Registrierung + ABAC-Repositoryberechtigungen" aus, um standardmäßige Microsoft Entra RBAC-Rollenzuweisungen beizubehalten, und wenden Sie optional Microsoft Entra ABAC-Bedingungen für fein abgestimmte Zugriffssteuerung auf Repositoryebene an.

Screenshot der Konfiguration des Rollenzuweisungsberechtigungsmodus

Weitere Informationen zu dieser Option finden Sie unter Microsoft Entra-attributbasierte Zugriffssteuerung (ABAC) für Repositoryberechtigungen.

Bereitstellen der Containerregistrierung

Übernehmen Sie für die übrigen Einstellungen die Standardwerte. Wählen Sie dann Überprüfen + erstellen aus. Überprüfen Sie die Einstellungen, und wählen Sie anschließend Erstellen aus.

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 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.

Wenn die Meldung Bereitstellung erfolgreich erscheint, wählen Sie die Containerregistrierung im Portal aus.

Containerregistrierungsübersicht im Portal

Notieren Sie sich den Registrierungsnamen und den Wert des Anmeldeservers, bei dem es sich um einen vollqualifizierten Namen handelt, der auf azurecr.io in der Azure-Cloud endet. Wenn Sie eine DNL-Option ausgewählt haben, enthält der Anmeldeservername einen eindeutigen Hash.

Verwenden Sie den Anmeldeserver in den folgenden Schritten, wenn Sie Images mit Docker übertragen und abrufen, sowie in nachgelagerten Verweisen wie Dockerfiles, Kubernetes YAML und Helm-Diagrammen.

Anmelden bei der Registrierung

Bevor Sie Push- und Pullvorgänge für Containerimages ausführen können, müssen Sie sich bei der Registrierungsinstanz anmelden. Melden Sie sich auf dem lokalen Computer bei der Azure CLI an, und führen Sie dann den Befehl az acr login aus.

Geben Sie nur den Namen der Registrierungsressource an, wenn Sie sich mit der Azure CLI anmelden, wie az acr login -n registryname. Verwenden Sie nicht den vollqualifizierten Anmeldeservernamen wie registryname.azurecr.io oder registryname-hash.azurecr.io (für DNL-fähige Registrierungen).

az acr login --name <registry-name>

Beispiel:

az acr login --name contosoacrregistry

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 an Ihre Registrierung übertragen können, müssen Sie es mit dem Docker-Tag mit dem vollqualifizierten Namen Ihres Registrierungsanmeldungsservers markieren.

  • Das Format des Anmeldeservernamens für geschützte Registrierungen mit DNL, einschließlich eines eindeutigen DNS-Namenshashes, ist 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, sieht der Anmeldeserver möglicherweise so aus: mycontainerregistry-abc123.azurecr.io 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 mit dem docker tag-Befehl unter Verwendung des Anmeldeservers Ihres Registries.

Taggingbild für eine Nicht-DNL-Registrierung:

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

Taggingbild für eine DNL-aktivierte Registrierung:

docker tag mcr.microsoft.com/hello-world mycontainerregistry-abc123.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 dieser Docker rmi-Befehl das Image nicht aus dem Hello-World-Repository in Ihrer Azure-Containerregistrierung entfernt.)

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

Auflisten von Containerimages

Navigieren Sie zum Auflisten der Images in Ihrer Registrierung im Portal zu Ihrer Registrierung, und wählen Sie Repositorys und dann das Repository hello-world aus, das Sie mit docker push erstellt haben.

Auflisten von Containerimages im Portal

Wenn Sie das Repository hello-world auswählen, wird unter v1 das mit gekennzeichnete Image angezeigt.

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

Navigieren Sie zum Bereinigen von Ressourcen im Portal zur Ressourcengruppe myResourceGroup. Klicken Sie nach dem Laden der Ressourcengruppe auf Ressourcengruppe löschen, um die Ressourcengruppe, die Containerregistrierung und die dort gespeicherten Containerimages zu entfernen.

Löschen der Ressourcengruppe im Portal

Nächste Schritte

In dieser Schnellstartanleitung haben Sie im Azure-Portal 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.