Démarrage rapide : Créer un registre de conteneurs privé avec Azure CLIQuickstart: Create a private container registry using the Azure CLI

Azure Container Registry est un service de registre de conteneurs Docker géré utilisé pour stocker des images de conteneurs Docker privés.Azure Container Registry is a managed Docker container registry service used for storing private Docker container images. Ce guide décrit en détail la création d’une instance Azure Container Registry à l’aide de l’interface de ligne de commande Azure.This guide details creating an Azure Container Registry instance using the Azure CLI. Vous allez ensuite utiliser des commandes Docker pour envoyer (push) une image conteneur dans le registre, puis tirer (pull) et exécuter l’image à partir de votre registre.Then, use Docker commands to push a container image into the registry, and finally pull and run the image from your registry.

Ce guide de démarrage rapide vous demande d’exécuter Azure CLI (version 2.0.55 ou ultérieure recommandée).This quickstart requires that you are running the Azure CLI (version 2.0.55 or later recommended). Exécutez az --version pour trouver la version.Run az --version to find the version. Si vous devez installer ou mettre à niveau, voir Installer Azure CLI.If you need to install or upgrade, see Install Azure CLI.

Docker doit également être installé en local.You must also have Docker installed locally. Docker fournit des packages qui le configurent facilement sur n’importe quel système macOS, Windows ou Linux.Docker provides packages that easily configure Docker on any macOS, Windows, or Linux system.

Étant donné qu’Azure Cloud Shell n’inclut pas tous les composants Docker requis (par exemple, le démon dockerd), vous ne pouvez pas l’utiliser pour ce démarrage rapide.Because the Azure Cloud Shell doesn't include all required Docker components (the dockerd daemon), you can't use the Cloud Shell for this quickstart.

Créer un groupe de ressourcesCreate a resource group

Créez un groupe de ressources avec la commande az group create.Create a resource group with the az group create command. Un groupe de ressources Azure est un conteneur logique dans lequel les ressources Azure sont déployées et gérées.An Azure resource group is a logical container into which Azure resources are deployed and managed.

L’exemple suivant crée un groupe de ressources nommé myResourceGroup à l’emplacement eastus.The following example creates a resource group named myResourceGroup in the eastus location.

az group create --name myResourceGroup --location eastus

Créer un registre de conteneurCreate a container registry

Dans ce guide de démarrage rapide, vous allez créer un registre De base. Il s’agit d’une option à coût optimisé pour les développeurs qui apprennent à se servir d’Azure Container Registry.In this quickstart you create a Basic registry, which is a cost-optimized option for developers learning about Azure Container Registry. Pour plus d’informations sur les niveaux de service disponibles, consultez Niveaux de service des registres de conteneurs.For details on available service tiers, see Container registry service tiers.

Créez une instance ACR à l’aide de la commande az acr create.Create an ACR instance using the az acr create command. Le nom du registre doit être unique dans Azure et contenir entre 5 et 50 caractères alphanumériques.The registry name must be unique within Azure, and contain 5-50 alphanumeric characters. Dans l’exemple suivant, nous utilisons le nom myContainerRegistry007.In the following example, myContainerRegistry007 is used. Mettez à jour le nom de façon à utiliser une valeur unique.Update this to a unique value.

az acr create --resource-group myResourceGroup \
  --name myContainerRegistry007 --sku Basic

Une fois le registre créé, la sortie ressemble à ce qui suit :When the registry is created, the output is similar to the following:

{
  "adminUserEnabled": false,
  "creationDate": "2019-01-08T22:32:13.175925+00:00",
  "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.ContainerRegistry/registries/myContainerRegistry007",
  "location": "eastus",
  "loginServer": "mycontainerregistry007.azurecr.io",
  "name": "myContainerRegistry007",
  "provisioningState": "Succeeded",
  "resourceGroup": "myResourceGroup",
  "sku": {
    "name": "Basic",
    "tier": "Basic"
  },
  "status": null,
  "storageAccount": null,
  "tags": {},
  "type": "Microsoft.ContainerRegistry/registries"
}

Notez loginServer dans la sortie, qui est le nom complet du registre (tout en minuscules).Take note of loginServer in the output, which is the fully qualified registry name (all lowercase). Dans la suite et fin du présent guide de démarrage rapide, <registry-name> est un espace réservé pour le nom du registre de conteneurs et <login-server> est un espace réservé pour le nom du serveur de connexion du registre.Throughout the rest of this quickstart <registry-name> is a placeholder for the container registry name, and <login-server> is a placeholder for the registry's login server name.

Se connecter au registreLog in to registry

Avant d’envoyer (push) et de tirer (pull) des images conteneur, vous devez vous connecter au registre.Before pushing and pulling container images, you must log in to the registry. Pour ce faire, utilisez la commande az acr login.To do so, use the az acr login command. Spécifiez uniquement le nom du registre au moment de la connexion à Azure CLI.Specify only the registry name when logging in with the Azure CLI. N’utilisez pas le nom du serveur de connexion, qui comprend un suffixe de domaine comme azurecr.io.Don't use the login server name, which includes a domain suffix like azurecr.io.

az acr login --name <registry-name>

Exemple :Example:

az acr login --name mycontainerregistry

Une fois l’opération terminée, la commande retourne un message Login Succeeded.The command returns a Login Succeeded message once completed.

Envoyer l’image au registrePush image to registry

Pour envoyer une image dans un registre Azure Container Registry, vous devez tout d’abord disposer d’une image.To push an image to an Azure Container registry, you must first have an image. Si vous n’avez pas encore d’images conteneur locales, exécutez la commande docker pull suivante pour tirer (pull) une image publique existante.If you don't yet have any local container images, run the following docker pull command to pull an existing public image. Pour cet exemple, tirez l’image hello-world à partir de Microsoft Container Registry.For this example, pull the hello-world image from Microsoft Container Registry.

docker pull mcr.microsoft.com/hello-world

Avant d’envoyer (push) une image vers le registre, vous devez la marquer avec le nom complet de votre serveur de connexion au registre.Before you can push an image to your registry, you must tag it with the fully qualified name of your registry login server. Le nom du serveur de connexion est au format <registry-name>.azurecr.io (obligatoirement tout en minuscules). Par exemple : mycontainerregistry.azurecr.io.The login server name is in the format <registry-name>.azurecr.io (must be all lowercase), for example, mycontainerregistry.azurecr.io.

Étiquetez l’image en utilisant la commande docker tag.Tag the image using the docker tag command. Remplacez <login-server> par le nom du serveur de connexion de votre instance ACR.Replace <login-server> with the login server name of your ACR instance.

docker tag mcr.microsoft.com/hello-world <login-server>/hello-world:v1

Exemple :Example:

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

Pour finir, utilisez la commande docker push pour envoyer l’image vers l’instance du registre.Finally, use docker push to push the image to the registry instance. Remplacez <login-server> par le nom du serveur de connexion de votre instance de registre.Replace <login-server> with the login server name of your registry instance. Cet exemple crée le référentiel hello-world qui contient l’image hello-world:v1.This example creates the hello-world repository, containing the hello-world:v1 image.

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

Après avoir envoyé (push) l’image à votre registre de conteneurs, supprimez l’image hello-world:v1 de votre environnement Docker local.After pushing the image to your container registry, remove the hello-world:v1 image from your local Docker environment. (Notez que cette commande docker rmi ne supprime pas l’image du référentiel hello-world dans votre registre de conteneurs Azure.)(Note that this docker rmi command does not remove the image from the hello-world repository in your Azure container registry.)

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

Répertorier les images conteneurList container images

L’exemple suivant liste les référentiels de votre registre :The following example lists the repositories in your registry:

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

Sortie :Output:

Result
----------------
hello-world

L’exemple suivant liste les balises existantes sur le dépôt hello-world.The following example lists the tags on the hello-world repository.

az acr repository show-tags --name <registry-name> --repository hello-world --output table

Sortie :Output:

Result
--------
v1

Exécuter l’image à partir du registreRun image from registry

Vous pouvez à présent extraire (pull) et exécuter l’image conteneur hello-world:v1 à partir de votre registre de conteneurs à l’aide de docker run :Now, you can pull and run the hello-world:v1 container image from your container registry by using docker run:

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

Exemple de sortie :Example output:

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.

[...]

Nettoyer les ressourcesClean up resources

Vous pouvez utiliser la commande az group delete pour supprimer le groupe de ressources, le registre de conteneurs et les images conteneur stockées à cet endroit quand vous n’en avez plus besoin.When no longer needed, you can use the az group delete command to remove the resource group, the container registry, and the container images stored there.

az group delete --name myResourceGroup

Étapes suivantesNext steps

Dans ce guide de démarrage rapide, vous avez créé un registre de conteneurs Azure avec Azure CLI, envoyé (push) une image conteneur au registre, puis tiré (pull) et exécuté l’image à partir du registre.In this quickstart, you created an Azure Container Registry with the Azure CLI, pushed a container image to the registry, and pulled and ran the image from the registry. Passez à présent au tutoriel sur Azure Container Registry (ACR) pour approfondir vos connaissances.Continue to the Azure Container Registry tutorials for a deeper look at ACR.