0Pricing
Cloud & IT Cert Prep · Lektion

Azure Container Registry

Erstellen und übertragen Sie Docker-Images in eine private Azure Container Registry, verwalten Sie den Zugriff mit Rollenzuweisungen und automatisieren Sie Image-Builds mit ACR Tasks.

Azure Container Registry ist eine kostenlose Cloud & IT Cert Prep-Lektion auf CoddyKit. Dies ist Lektion 1 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Cloud & IT Cert Prep-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Cloud & IT Cert Prep-Kurs umfasst insgesamt 4 Lektionen.

Was ist Azure Container Registry?

Azure Container Registry (ACR) ist ein verwalteter privater Docker-Registry-Dienst, der auf der Open-Source-Software Docker Registry 2.0 basiert. Er speichert und verwaltet Containerimages und zugehörige Artefakte (Helm-Charts, OCI-Artefakte), die von Ihren Azure-Bereitstellungen verwendet werden. ACR lässt sich nativ in Azure Kubernetes Service (AKS), Azure Container Instances (ACI) und App Service integrieren und ermöglicht das nahtlose Abrufen von Images ohne Verwaltung von Anmeldeinformationen.

ACR-Diensttarife

ACR bietet drei Diensttarife. Basic ist für das Lernen und die Entwicklung mit geringem Durchsatz kostenoptimiert und bietet 10 GB Speicher sowie eingeschränkte Webhook-Unterstützung. Standard ergänzt Funktionen zur Georeplikation und einen höheren Durchsatz und eignet sich für die meisten Produktionsworkloads. Premium umfasst Georeplikation, Content Trust, private Links, kundenseitig verwaltete Schlüssel und die höchste Bandbreite und ist für Anforderungen an die Unternehmenssicherheit erforderlich.

# Create a Premium ACR in East US
az acr create \
  --name mycontainerregistry \
  --resource-group MyRG \
  --location eastus \
  --sku Premium

# List ACR instances in the subscription
az acr list --query '[].{name:name, sku:sku.name, loginServer:loginServer}' -o table

Images in ACR übertragen

Um ein Docker-Image in ACR zu übertragen, authentifizieren Sie den Docker-Client, versehen Ihr lokales Image mit dem Hostnamen des ACR-Anmeldeservers und übertragen es anschließend. Die URL des ACR-Anmeldeservers folgt dem Muster <registryname>.azurecr.io. Die Authentifizierung erfolgt mit Ihren Azure-AD-Anmeldeinformationen über az acr login (für die interaktive Verwendung) oder über ein ACR-Administratorkennwort bzw. einen Dienstprinzipal für automatisierte Pipelines.

# Authenticate to ACR
az acr login --name mycontainerregistry

# Tag a local image for ACR
docker tag myapp:latest mycontainerregistry.azurecr.io/myapp:v1.0

# Push the image
docker push mycontainerregistry.azurecr.io/myapp:v1.0

# List images in the registry
az acr repository list --name mycontainerregistry -o table
az acr repository show-tags --name mycontainerregistry --repository myapp

ACR Tasks: Cloudbasierte Builds

Mit ACR Tasks können Sie Docker-Images in der Cloud erstellen, ohne einen lokalen Docker-Daemon zu benötigen. Eine Quick Task (az acr build) sendet Ihren Buildkontext an ACR und führt die Dockerfile remote aus. Dabei wird ein Image direkt in der Registry gespeichert. Geplante oder triggerbasierte Tasks können Ihr Image automatisch neu erstellen, wenn das Basisimage aktualisiert oder Code in GitHub committet wird. Dadurch ist eine vollständige Container-CI-Pipeline ohne separaten Build-Agent möglich.

# Quick task: build and push without local Docker
az acr build \
  --registry mycontainerregistry \
  --image myapp:v1.0 \
  . # build context (current directory with Dockerfile)

# Define a multi-step ACR Task triggered on commit
az acr task create \
  --name buildAndTest \
  --registry mycontainerregistry \
  --context https://github.com/myorg/myrepo.git \
  --file acr-task.yaml \
  --git-access-token <GITHUB_PAT>

Zugriffssteuerung mit RBAC

ACR ist für eine differenzierte Zugriffssteuerung in Azure RBAC integriert. Zu den integrierten ACR-Rollen gehören AcrPull (nur Images abrufen – für Bereitstellungsdienste), AcrPush (Images abrufen und übertragen – für CI/CD-Pipelines) und AcrDelete (Image-Tags verwalten). Weisen Sie der verwalteten Identität Ihres AKS- oder App-Service-Dienstes die Rolle AcrPull zu, damit Container Images ohne irgendwo gespeicherte Anmeldeinformationen abrufen können.

# Grant AKS cluster's managed identity the AcrPull role
ACR_ID=$(az acr show --name mycontainerregistry --resource-group MyRG --query id -o tsv)
AKS_IDENTITY=$(az aks show --name myAKSCluster --resource-group MyRG \
  --query identityProfile.kubeletidentity.objectId -o tsv)

az role assignment create \
  --assignee $AKS_IDENTITY \
  --role AcrPull \
  --scope $ACR_ID

Georeplikation für globale Bereitstellungen

Georeplikation (Premium-Tarif) repliziert Ihre Registry in mehrere Azure-Regionen. Wenn AKS oder ACI in einer Region ein Image abruft, wird es aus der nächstgelegenen Replik gelesen und nicht aus einer entfernten Registry. Dadurch werden Latenz und Ausgangskosten reduziert. Die Replikation erfolgt transparent: Weltweit funktioniert derselbe Image-URI, und ACR leitet Abrufanforderungen automatisch an die geografisch nächstgelegene Replik weiter.

# Add a geo-replication to West Europe
az acr replication create \
  --name westeurope \
  --registry mycontainerregistry \
  --location westeurope

# List all replicas
az acr replication list \
  --registry mycontainerregistry \
  --query '[].{name:name, location:location, status:provisioningState}' -o table

Content Trust und Imagesignierung

Content Trust (Premium-Tarif) verwendet Docker Notary, um sicherzustellen, dass nur signierte Images aus der Registry abgerufen werden können. Wenn Content Trust in ACR aktiviert ist, werden unsignierte Images abgelehnt. Die Signierung erfolgt in der CI-Pipeline mithilfe der Toolchain für Docker Content Trust und eines vertrauenswürdigen Schlüsselpaares. Dadurch werden Supply-Chain-Angriffe verhindert, bei denen ein schädliches Image übertragen und in der Produktion bereitgestellt wird.

# Enable content trust on the registry
az acr config content-trust update \
  --registry mycontainerregistry \
  --status enabled

# Sign an image when pushing (DOCKER_CONTENT_TRUST env var)
# export DOCKER_CONTENT_TRUST=1
# docker push mycontainerregistry.azurecr.io/myapp:v1.0
# (Docker prompts for signing key passphrase)

Sicherheitsrisiken mit Defender überprüfen

Aktivieren Sie Microsoft Defender for Containers, um jedes in ACR übertragene Image automatisch auf bekannte Sicherheitsrisiken in der Betriebssystem- und Anwendungsschicht (CVEs) zu überprüfen. Defender erstellt einen Bericht, der Sicherheitsrisiken nach Schweregrad (Kritisch, Hoch, Mittel, Niedrig) auflistet und Anleitungen zur Behebung bereitstellt. Über die Integration in Azure Policy können Sie Richtlinien konfigurieren, die die Bereitstellung von Images mit kritischen Sicherheitsrisiken in AKS-Clustern blockieren.

# Enable Defender for Containers on the subscription
az security pricing create \
  --name Containers \
  --tier Standard

# View vulnerability assessment results
az security assessment list \
  --query "[?contains(displayName, 'Container')].{name:displayName, status:status.code}" \
  -o table

Privater Endpunkt für ACR

Deaktivieren Sie für maximale Sicherheit den öffentlichen Netzwerkzugriff von ACR und stellen Sie ausschließlich über einen privaten Endpunkt innerhalb Ihres VNet eine Verbindung her. Dadurch werden Containerimages niemals über das öffentliche Internet übertragen, sondern alle Abrufe über das private Azure-Backbone geleitet. Konfigurieren Sie eine private DNS-Zone (privatelink.azurecr.io), um den Hostnamen der Registry in die private IP-Adresse innerhalb Ihres VNet aufzulösen.

# Create a private endpoint for ACR
az network private-endpoint create \
  --name acr-private-endpoint \
  --resource-group MyRG \
  --vnet-name MyVNet \
  --subnet PrivateEndpointSubnet \
  --private-connection-resource-id \
    $(az acr show --name mycontainerregistry --query id -o tsv) \
  --group-id registry \
  --connection-name acrConnection

# Disable public access
az acr update \
  --name mycontainerregistry \
  --public-network-enabled false

Lebenszyklusverwaltung: Alte Images löschen

Ohne Lebenszyklusverwaltung sammeln sich in Containerregistries Tausende alter Image-Tags an, die teuren Speicherplatz belegen. Verwenden Sie ACR-Purge-Tasks (einen integrierten Timer-Task), um nicht getaggte Manifeste und Tags zu löschen, die älter als ein bestimmter Zeitraum sind. Führen Sie Bereinigungen nach einem Zeitplan mit az acr task create und dem Befehl acr purge aus. Richten Sie sie auf bestimmte Repositorys aus und behalten Sie eine Mindestanzahl aktueller Tags.

# Create a scheduled purge task: delete tags older than 30d
az acr task create \
  --name scheduledPurge \
  --registry mycontainerregistry \
  --cmd 'acr purge --filter myapp:.*  --ago 30d --keep 5 --untagged' \
  --schedule '0 1 * * *' \
  --context /dev/null

ACR in AKS integrieren

Die einfachste Möglichkeit, AKS mit ACR zu verbinden, ist die Verwendung des Befehls az aks update --attach-acr. Dadurch wird der verwalteten Identität von AKS automatisch die Rolle AcrPull zugewiesen. Nach der Verknüpfung verweisen Kubernetes-Pod-Spezifikationen nur über den vollständigen ACR-Hostnamen auf Images. imagePullSecrets sind nicht erforderlich, da AKS die verwaltete Identität auf Node-Ebene transparent zur Authentifizierung verwendet.

# Attach ACR to an existing AKS cluster
az aks update \
  --name myAKSCluster \
  --resource-group MyRG \
  --attach-acr mycontainerregistry

# Now pods can use ACR images without imagePullSecrets
# Example pod spec:
# spec:
#   containers:
#   - name: myapp
#     image: mycontainerregistry.azurecr.io/myapp:v1.0

Schnelltest

Testen Sie Ihr Verständnis der Konzepte aus Microsoft Azure Fundamentals (AZ-900), die in dieser Lektion behandelt wurden.

Zusammenfassung der Lektion

In dieser Lektion haben Sie Folgendes gelernt: Azure Container Registry (ACR) ist eine verwaltete private Registry zum Speichern von Docker-Images. ACR Tasks ermöglichen cloudbasierte Image-Builds ohne lokalen Docker-Daemon, und RBAC-Rollen (AcrPull, AcrPush) steuern den Zugriff für Bereitstellungsdienste und CI/CD-Pipelines. Als Nächstes sehen wir uns Azure Container Instances an.

Häufig gestellte Fragen

Ist die Lektion „Azure Container Registry“ kostenlos?

Ja — der vollständige Text von „Azure Container Registry“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Cloud & IT Cert Prep-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Cloud & IT Cert Prep-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Azure Container Registry“?

Erstellen und übertragen Sie Docker-Images in eine private Azure Container Registry, verwalten Sie den Zugriff mit Rollenzuweisungen und automatisieren Sie Image-Builds mit ACR Tasks. Du übst Cloud & IT Cert Prep mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Cloud & IT Cert Prep zu starten?

Keine Vorkenntnisse erforderlich. Cloud & IT Cert Prep auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 1 von 4.

Wie lange dauert die Lektion „Azure Container Registry“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Cloud & IT Cert Prep-Lektion Code schreiben und ausführen?

Ja. Jede Cloud & IT Cert Prep-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Azure Container Registry
  2. Azure Container Instances
  3. Kubernetes-Konzepte für Azure
  4. Workloads in AKS bereitstellen
← Zurück zu Cloud & IT Cert Prep