Tutoriel : Créer une Azure Container Registry (ACR) et générer des images

Azure Container Registry (ACR) est un registre privé pour les images conteneur. Un registre de conteneurs privé vous permet de générer et de déployer vos applications et codes personnalisés en toute sécurité.

Dans ce tutoriel, vous déployez une instance ACR et envoyez une image conteneur vers celle-ci. Vous allez apprendre à effectuer les actions suivantes :

  • Créez une instance ACR.
  • Utilisez les tâches ACR pour générer et push des images conteneurs vers l'ACR.
  • Visualisez les images figurant dans votre registre.

Avant de commencer

Dans le didacticiel previous, vous avez cloné le référentiel de code d’application et utilisé Docker pour créer une image conteneur pour une application simple Azure Store Front. Si vous n'avez pas créé l'image Azure Store Front app, revenez à Tutorial 1 - Préparer une application pour AKS.

Ce didacticiel nécessite Azure CLI version 2.0.53 ou ultérieure. Pour connaître la version de l’interface, exécutez la commande az --version. Si vous devez installer ou mettre à niveau, consultez Installer Azure CLI.

Créer un Azure Container Registry

Avant de créer une instance ACR, il vous faut un groupe de ressources. Un groupe de ressources Azure est un conteneur logique dans lequel vous déployez et gérez des ressources Azure.

  1. Créez des variables pour le nom, l’emplacement et le nom du registre du groupe de ressources. Vous pouvez utiliser ces valeurs ou créer vos propres valeurs. La valeur de la variable de nom de Registre stockée dans ACRNAME doit être unique dans Azure et contenir 5 à 50 caractères alphanumériques minuscules.

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

    La valeur de la variable de nom de Registre stockée dans ACRNAME doit être unique dans Azure et contenir 5 à 50 caractères alphanumériques minuscules. La ACRNAME valeur est concaténée avec la RANDOM_STRING variable qui stocke une chaîne à 10 chiffres aléatoire pour garantir que le nom du Registre est unique. Variable RESOURCE_GROUP avec la valeur myResourceGroup pour le groupe de ressources et LOCATION avec la valeur westus2. Vous pouvez utiliser ces valeurs ou créer vos propres valeurs.

  2. Créez un groupe de ressources avec la commande az group create.

    az group create --name $RESOURCE_GROUP --location $LOCATION
    
  3. Créez une instance ACR avec la commande az acr create et fournissez votre propre nom de registre unique. La référence SKU De base est un point d’entrée au coût optimisé fourni à des fins de développement qui offre un bon équilibre entre stockage et débit.

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

Générer et envoyer (push) des images conteneur aux registre

Générez et envoyez (push) les images à votre ACR à l’aide de la commande Azure CLI az acr build. Les az acr build commandes utilisent des images dans le référentiel que vous avez cloné dans l’article précédent préparez une application pour AKS. Assurez-vous de basculer vers ce répertoire, sans quoi les build commandes échoueront. Par exemple, si vous avez créé un répertoire demorepo et cloné le référentiel, le répertoire racine du référentiel est aks-store-demo, donc basculez vers le répertoire demorepo/aks-store-demo .

Il n'existe pas d'applet de commande Azure PowerShell équivalente qui génère ou envoie des images conteneur au registre. Vous devez utiliser les étapes de Azure CLI, mais avec la variable ACRNAME définie sur la valeur que vous avez créée dans PowerShell. Dans PowerShell, vous pouvez obtenir la valeur avec la commande $ACRNAME.

Dans l’exemple suivant, nous ne générons pas l’image product-service. Cette image peut prendre beaucoup de temps pour générer, et une image conteneur est déjà disponible dans le registre de conteneurs GitHub (GHCR). Vous pouvez utiliser la az acr import commande pour importer l’image à partir du GHCR vers votre instance ACR. Nous ne créons pas non plus l’image rabbitmq . Cette image est disponible à partir du dépôt public Docker Hub et n'a pas besoin d'être générée ou envoyée (push) à votre instance ACR.

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/

Lister les images dans le registre

Affichez les images dans votre instance ACR à l’aide de la commande az acr repository list.

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

L’exemple de sortie suivant répertorie les images disponibles dans votre registre :

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

Étapes suivantes

Dans le cadre de ce didacticiel, vous avez créé une instance ACR et lui avez envoyé des images à utiliser dans un cluster AKS. Vous avez appris à :

  • Créez une instance ACR.
  • Utilisez les tâches ACR pour générer et push des images conteneurs vers l'ACR.
  • Visualisez les images figurant dans votre registre.

Dans le tutoriel suivant, vous allez apprendre à déployer un cluster Kubernetes dans Azure.