Freigeben über


Lernprogramm – Erstellen einer Azure Container Registry (ACR) und Erstellen von Images

Azure Container Registry (ACR) ist eine private Registrierung für Containerimages. Mit einer privaten Containerregistrierung können Sie Ihre Anwendungen und benutzerdefinierten Code auf sichere Weise erstellen und bereitstellen.

In diesem Tutorial stellen Sie eine ACR-Instanz bereit und übertragen ein Container-Image darauf. Folgendes wird vermittelt:

  • Erstellen einer ACR-Instanz
  • Verwenden von ACR Tasks, um Containerimages zu erstellen und in ACR zu pushen
  • Anzeigen von Images in der Registrierung

Bevor Sie beginnen

Im lernprogramm previous haben Sie das Anwendungscode-Repository geklont und Docker verwendet, um ein Containerimage für eine einfache Azure Store-Front-Anwendung zu erstellen. Wenn Sie das Azure Store-Front-App-Image nicht erstellt haben, kehren Sie zu Tutorial 1 – Vorbereiten einer Anwendung für AKS zurück.

Dieses Lernprogramm erfordert Azure CLI Version 2.0.53 oder höher. Führen Sie den Befehl az --version aus, um die Version zu ermitteln. Informationen zum Installieren oder Aktualisieren finden Sie unter Install Azure CLI.

Erstellen einer Azure Container Registry

Zum Erstellen einer ACR-Instanz benötigen Sie zunächst eine Ressourcengruppe. Eine Azure Ressourcengruppe ist ein logischer Container, in dem Sie Azure Ressourcen bereitstellen und verwalten.

  1. Erstellen Sie Variablen für den Ressourcengruppennamen, den Speicherort und den Registrierungsnamen. Sie können diese Werte verwenden oder eigene erstellen. Der Wert der Registrierungsnamenvariable, der in ACRNAME gespeichert ist, muss innerhalb Azure eindeutig sein und 5-50 alphanumerische Zeichen enthalten.

    export RESOURCE_GROUP=myResourceGroup
    export LOCATION=westus2
    export RANDOM_STRING=$(printf '%05d%05d' "$RANDOM" "$RANDOM")
    export ACRNAME="myregistry${RANDOM_STRING}"
    

    Der Wert der Registrierungsnamenvariable, der in ACRNAME gespeichert ist, muss innerhalb Azure eindeutig sein und 5-50 alphanumerische Zeichen enthalten. Der ACRNAME Wert wird mit der RANDOM_STRING Variablen verkettet, die eine zufällige 10-stellige Zeichenfolge speichert, um sicherzustellen, dass der Registrierungsname eindeutig ist. Die Variable RESOURCE_GROUP mit dem Wert "myResourceGroup " für die Ressourcengruppe und LOCATION dem Wert "westus2". Sie können diese Werte verwenden oder eigene erstellen.

  2. Erstellen Sie mit dem Befehl az group create eine Ressourcengruppe.

    az group create --name $RESOURCE_GROUP --location $LOCATION
    
  3. Erstellen Sie mit dem Befehl az acr create eine ACR-Instanz, und geben Sie einen eigenen eindeutigen Registrierungsnamen an. Die Basic-SKU ist ein kostenoptimierter Einstiegspunkt für Entwicklungszwecke, der ein ausgewogenes Verhältnis von Speicher und Durchsatz bietet.

    az acr create \
      --resource-group $RESOURCE_GROUP \
      --location $LOCATION \
      --name $ACRNAME \
      --sku Basic
    

Erstellen und Übertragen von Container-Images in das Register

Erstellen Sie die Images und übertragen Sie sie mit dem Azure CLI az acr build-Befehl auf Ihr ACR. Die az acr build Befehle verwenden Bilder im Repository, das Sie im vorherigen Artikel geklont haben, bereiten eine App für AKS vor. Stellen Sie sicher, dass Sie zu diesem Verzeichnis wechseln, sonst schlagen die build Befehle fehl. Wenn Sie z. B. das Verzeichnis demorepo erstellt und das Repository geklont haben, ist das Stammverzeichnis des Repositorys aks-store-demo. Wechseln Sie also zum Demorepo/aks-store-demo-Verzeichnis .

Es gibt kein gleichwertiges Azure PowerShell Cmdlet, das Containerimages erstellt oder an die Registrierung überträgt. Sie müssen die Schritte für Azure CLI verwenden, wobei jedoch die variable ACRNAME auf den Wert festgelegt ist, den Sie in PowerShell erstellt haben. In PowerShell können Sie den Wert mit dem Befehl $ACRNAMEabrufen.

Im folgenden Beispiel wird das Image product-service nicht erstellt. Der Aufbau dieses Images kann lange dauern, und es ist bereits ein Container-Image im GitHub Container Registry (GHCR) verfügbar. Sie können den az acr import Befehl verwenden, um das Bild aus dem GHCR in Ihre ACR-Instanz zu importieren. Wir erstellen das rabbitmq Image auch nicht. Dieses Image ist über das öffentliche Repository Docker Hub verfügbar und muss nicht erstellt oder an Ihre ACR-Instanz übertragen werden.

az acr import \
  --name $ACRNAME \
  --source ghcr.io/azure-samples/aks-store-demo/product-service:latest \
  --image aks-store-demo/product-service:latest

az acr build \
  --registry $ACRNAME \
  --image aks-store-demo/order-service:latest ./src/order-service/

az acr build \
  --registry $ACRNAME \
  --image aks-store-demo/store-front:latest ./src/store-front/

Images in der Registry auflisten

Zeigen Sie die Images in Ihrer ACR-Instanz mithilfe des Befehls az acr repository list an.

az acr repository list --name $ACRNAME --output table

Die folgende Beispielausgabe listet die verfügbaren Images in Ihrer Registrierung auf:

Result
----------------
aks-store-demo/product-service
aks-store-demo/order-service
aks-store-demo/store-front

Nächste Schritte

In diesem Tutorial haben Sie eine ACR-Instanz erstellt und Images per Push für die Verwendung in einem AKS-Cluster übertragen. Sie haben Folgendes gelernt:

  • Erstellen einer ACR-Instanz
  • Verwenden von ACR Tasks, um Containerimages zu erstellen und in ACR zu pushen
  • Anzeigen von Images in der Registrierung

Im nächsten Lernprogramm erfahren Sie, wie Sie einen Kubernetes-Cluster in Azure bereitstellen.