Partager via


Tutoriel : Créer un registre de conteneurs Azure et envoyer une image conteneur

Cet article est la deuxième partie d’un tutoriel en trois parties. Dans la première partie du didacticiel, vous avez créé une image de conteneur Docker pour une application web Node.js. Dans ce didacticiel, vous envoyez cette image à Azure Container Registry. Si vous avez besoin de créer l’image conteneur, revenez au Tutoriel 1 : créer une image conteneur.

Azure Container Registry est votre registre Docker privé dans Azure. Dans ce tutoriel, la deuxième partie de la série, vous allez :

  • Créer une instance Azure Container Registry avec Azure CLI.
  • Baliser une image conteneur pour votre Azure Container Registry
  • Charger l’image dans votre registre

Dans ce dernier article de la série, vous allez déployer le conteneur de votre registre privé vers Azure Container Instances.

Avant de commencer

Pour suivre ce didacticiel, vous devez satisfaire aux exigences suivantes :

Azure CLI : Azure CLI version 2.0.29 ou ultérieure doit être installée sur votre ordinateur local. Pour connaître la version de l’interface, exécutez az --version. Si vous devez effectuer une installation ou une mise à niveau, consultez Installer Azure CLI.

Docker : ce tutoriel présuppose une compréhension de base des concepts Docker essentiels, tels que les conteneurs, les images conteneur et les commandes docker de base. Pour apprendre les principes de base de Docker et des conteneurs, consultez la vue d’ensemble de Docker.

Docker : Pour suivre ce tutoriel, Docker doit être installé localement. Docker fournit des packages qui configurent l’environnement Docker sur macOS, Windows et Linux.

Important

Étant donné qu’Azure Cloud Shell n’inclut pas le démon Docker, vous devez installer Azure CLI et le moteur Docker sur votre ordinateur local pour suivre ce didacticiel. Vous ne pouvez pas utiliser Azure Cloud Shell pour ce didacticiel.

Créer un registre de conteneurs Azure

Avant de créer votre registre de conteneurs, vous avez besoin d’un groupe de ressources vers lequel le déployer. Un groupe de ressources est une collection logique dans laquelle toutes les ressources Azure sont déployées et gérées.

Créez un groupe de ressources avec la commande az group create. Dans l’exemple suivant, un groupe de ressources nommé myResourceGroup est créé dans la région eastus :

az group create --name myResourceGroup --location eastus

Une fois que vous avez créé le groupe de ressources, créez un registre de conteneurs Azure avec la commande az acr create. Le nom du registre de conteneurs doit être unique dans Azure et contenir de 5 à 50 caractères alphanumériques. Remplacez <acrName> par un nom unique pour votre registre :

az acr create --resource-group myResourceGroup --name <acrName> --sku Basic

Voici une sortie partielle pour un nouveau registre de conteneurs Azure nommé mycontainerregistry082 :

{
  "creationDate": "2020-07-16T21:54:47.297875+00:00",
  "id": "/subscriptions/<Subscription ID>/resourceGroups/myResourceGroup/providers/Microsoft.ContainerRegistry/registries/mycontainerregistry082",
  "location": "eastus",
  "loginServer": "mycontainerregistry082.azurecr.io",
  "name": "mycontainerregistry082",
  "provisioningState": "Succeeded",
  "resourceGroup": "myResourceGroup",
  "sku": {
    "name": "Basic",
    "tier": "Basic"
  },
  "status": null,
  "storageAccount": null,
  "tags": {},
  "type": "Microsoft.ContainerRegistry/registries"
}

Dans le reste de ce didacticiel, <acrName> désigne l’espace réservé du nom du registre des conteneurs que vous choisissez dans cette étape.

Se connecter au registre de conteneurs

Vous devez vous connecter à votre instance Azure Container Registry avant de lui envoyer (push) des images. Utilisez la commande az acr login pour terminer l’opération. Vous devez fournir le nom unique que vous avez choisi pour le registre de conteneurs au moment de sa création.

az acr login --name <acrName>

Par exemple :

az acr login --name mycontainerregistry082

Une fois l’opération terminée, la commande renvoie Login Succeeded :

Login Succeeded

Baliser l’image de conteneur

Pour envoyer une image de conteneur sur un registre privé comme Azure Container Registry, vous devez d’abord étiqueter l’image avec le nom complet du serveur de connexion du registre.

Tout d’abord, obtenez le nom complet du serveur de connexion pour votre registre de conteneurs Azure. Exécutez la commande az acr show suivante et remplacez <acrName> par le nom de registre que vous avez créé :

az acr show --name <acrName> --query loginServer --output table

Par exemple, si votre registre est nommé mycontainerregistry082 :

az acr show --name mycontainerregistry082 --query loginServer --output table
Result
------------------------
mycontainerregistry082.azurecr.io

Maintenant, affichez la liste de vos images locales avec la commande docker images :

docker images

Vous devriez voir l’image aci-didacticiel-app que vous avez créé dans le didacticiel précédent en même temps que toutes les autres images vous avez sur votre ordinateur :

docker images
REPOSITORY          TAG       IMAGE ID        CREATED           SIZE
aci-tutorial-app    latest    5c745774dfa9    39 minutes ago    68.1 MB

Étiquetez l’image aci-tutorial-app à l’aide du serveur de connexion de votre registre de conteneurs. Ajoutez également la balise :v1 à la fin du nom d’image pour indiquer le numéro de version de l’image. Remplacez <acrLoginServer> par le résultat de la commande az acr show que vous avez exécutée précédemment.

docker tag aci-tutorial-app <acrLoginServer>/aci-tutorial-app:v1

Exécutez docker images de nouveau pour vérifier l’opération de marquage :

docker images
REPOSITORY                                            TAG       IMAGE ID        CREATED           SIZE
aci-tutorial-app                                      latest    5c745774dfa9    39 minutes ago    68.1 MB
mycontainerregistry082.azurecr.io/aci-tutorial-app    v1        5c745774dfa9    7 minutes ago     68.1 MB

Envoyer l’image à Azure Container Registry

Maintenant que vous avez étiqueté l’image aci-tutorial-app avec le nom complet du serveur de connexion de votre registre privé, vous pouvez envoyer (push) l’image au registre avec la commande docker push. Remplacez <acrLoginServer> par le nom complet du serveur de connexion que vous avez obtenu à l’étape précédente.

docker push <acrLoginServer>/aci-tutorial-app:v1

L’opération push peut durer de quelques secondes à quelques minutes selon votre connexion Internet, et vous obtenez une sortie semblable à l’exemple suivant :

docker push mycontainerregistry082.azurecr.io/aci-tutorial-app:v1
The push refers to a repository [mycontainerregistry082.azurecr.io/aci-tutorial-app]
3db9cac20d49: Pushed
13f653351004: Pushed
4cd158165f4d: Pushed
d8fbd47558a8: Pushed
44ab46125c35: Pushed
5bef08742407: Pushed
v1: digest: sha256:ed67fff971da47175856505585dcd92d1270c3b37543e8afd46014d328f05715 size: 1576

Énumérer les images dans Azure Container Registry

Pour vérifier que l’image que vous venez d’envoyer est bien dans le registre de conteneurs Azure, listez les images de votre registre avec la commande az acr repository list. Remplacez <acrName> par le nom de votre registre de conteneurs.

az acr repository list --name <acrName> --output table

Par exemple :

az acr repository list --name mycontainerregistry082 --output table
Result
----------------
aci-tutorial-app

Pour voir les étiquettes d’une image spécifique, utilisez la commande az acr repository show-tags.

az acr repository show-tags --name <acrName> --repository aci-tutorial-app --output table

Vous devez obtenir une sortie similaire à la suivante :

--------
v1

Étapes suivantes

Dans ce didacticiel, vous avez préparé un registre de conteneurs Azure pour une utilisation avec Azure Container Instances, et envoyé une image conteneur vers le registre. Les étapes suivantes ont été effectuées :

  • Création d’une instance Azure Container Registry avec Azure CLI
  • Marquage d’une image conteneur pour Azure Container Registry
  • Chargement d’une image dans Azure Container Registry

Passez au didacticiel suivant pour découvrir comment déployer le conteneur sur Azure à l’aide d’Azure Container Instances :