Partager via


Démarrage rapide : Créer un ACR à l’aide du portail Azure

Azure Container Registry est un service de registre privé permettant de créer, de stocker et de gérer des images conteneurs et les artefacts associés. Dans ce guide de démarrage rapide, vous créez une instance de registre de conteneurs Azure avec le portail Azure. 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.

Pour vous connecter au registre et utiliser des images conteneur, ce guide de démarrage rapide vous demande d’exécuter Azure CLI (version 2.0.55 ou ultérieure recommandée). Exécutez az --version pour trouver la version. Si vous devez installer ou mettre à niveau, voir Installer Azure CLI.

Docker doit également être installé localement avec le démon en cours d’exécution. Docker fournit des packages qui le configurent facilement sur n’importe quel système Mac, Windows ou Linux.

Connexion à Azure

Connectez-vous au portail Azure.

Créer un registre de conteneur

Sélectionnez Créer une ressource>Conteneurs>Container Registry.

Accéder au registre de conteneurs dans le portail

Configurer le nom et la référence SKU du registre de conteneurs

Sous l’onglet Informations de base, entrez les valeurs appropriées pour Groupe de ressources et Nom du registre. Le nom du registre doit être unique dans Azure et contenir 5 à 50 caractères alphanumériques, avec des tirets (-) non autorisés dans le nom du registre. Pour ce guide de démarrage rapide, créez un groupe de ressources dans l’emplacement West US 2 nommé myResourceGroup, et sélectionnez Standard pour SKU.

Créer un registre de conteneurs dans le portail

Pour plus d’informations sur les différentes options de SKU, consultez Azure Container Registry SKU.

Configurer l’option DNL (Domain Name Label)

La fonctionnalité Domain Name Label (DNL) renforce la sécurité en empêchant les attaques de prise de contrôle de sous-domaines des noms DNS du registre. Ces attaques se produisent lorsqu’un registre est supprimé et qu’une autre entité réutilise le même nom de registre, ce qui peut entraîner l’extraction de références en aval à partir du registre recréé par l’autre entité.

DNL résout ce problème en ajoutant un hachage unique au nom DNS du registre. Cela garantit que même si le même nom de Registre est réutilisé par une autre entité, les noms DNS diffèrent en raison du hachage unique. Vous éviterez ainsi que vos références en aval ne pointent par inadvertance vers le registre recréé par l’autre entité.

Lors de la création d’un registre à partir du portail, sélectionnez l’étendue d’étiquette de nom de domaine dans les options disponibles :

  • Non sécurisé : crée le nom DNS as-is, en fonction du nom du Registre (par exemple contosoacrregistry.azurecr.io). Cette option n’inclut pas la protection DNL.
  • Réutilisation du locataire : ajoute une synthèse du message unique en fonction du nom du locataire et du registre, ce qui garantit que le nom DNS est unique dans le locataire.
  • Réutilisation de l’abonnement : ajoute un hachage unique basé sur l’abonnement, le locataire et le nom du Registre, ce qui garantit que le nom DNS est unique dans l’abonnement.
  • Réutilisation des groupes de ressources : ajoute un hachage unique basé sur le groupe de ressources, l’abonnement, le locataire et le nom du registre, afin de garantir l'unicité du nom DNS au sein du groupe de ressources.
  • Aucune réutilisation : génère un nom DNS unique avec un hachage unique chaque fois que le registre est créé, quels que soient d’autres facteurs, ce qui garantit que le nom DNS est toujours unique.

Remarque

Configuration immuable : l’étendue DNL sélectionnée lors de la création du Registre est permanente et ne peut pas être modifiée ultérieurement. Cela garantit un comportement DNS cohérent et empêche les interruptions des références en aval.

Configurer l’option Étiquette de nom de domaine

Implications du nom DNS des options DNL

Format de nom DNS : pour toutes les options compatibles DNL, sauf non sécurisé, le nom DNS suit le format registryname-hash.azurecr.io, où le tiret (-) sert de délimiteur de hachage. Pour éviter les conflits, tiret (-) n’est pas autorisé dans le nom du registre. Par exemple, un registre nommé contosoacrregistry avec l’étendue Tenant Reuse DNL aura un nom DNS comme contosoacrregistry-e7ggejfuhzhgedc8.azurecr.io.

Références en aval : le nom DNS peut différer du nom du Registre, nécessitant des mises à jour dans des fichiers en aval tels que Dockerfiles, Kubernetes YAML et des graphiques Helm pour refléter le nom DNS complet avec le hachage DNL. Par exemple, si vous souhaitez que votre fichier Dockerfile en aval référence un registre nommé contosoacrregistry avec le scope Tenant Reuse DNL, vous devez mettre à jour la référence à contosoacrregistry-e7ggejfuhzhgedc8.azurecr.io dans votre fichier Dockerfile en aval.

Capture d’écran de la révision de l’option Étiquette de nom de domaine et du nom DNS.

Configurer le mode d’autorisations d’attribution de rôle

Configurez le « mode d’autorisations d’attribution de rôle » du nouveau registre. Cette option détermine comment le contrôle d’accès en fonction du rôle Microsoft Entra (RBAC) et les attributions de rôles sont gérés pour le Registre, notamment l’utilisation du contrôle d’accès en fonction de l’attribut Microsoft Entra (ABAC) pour les autorisations du référentiel Microsoft Entra.

Choisissez « Registre RBAC + Autorisations de référentiel ABAC » pour conserver les attributions de rôles RBAC Microsoft Entra standard, tout en appliquant éventuellement des conditions Microsoft Entra ABAC pour un contrôle d’accès précis au niveau du dépôt.

Capture d’écran de la configuration du mode d’autorisations d’attribution de rôle

Pour plus d’informations sur cette option, consultez le contrôle d’accès en fonction de l’attribut Microsoft Entra (ABAC) pour obtenir des autorisations de dépôt.

Déploiement du registre de conteneurs

Acceptez les valeurs par défaut pour les autres paramètres. Sélectionnez ensuite Passer en revue + créer . Après avoir passé en revue les paramètres, sélectionnez Créer.

Conseil

Dans ce guide de démarrage rapide, vous créez un registre Standard , qui est suffisant pour la plupart des flux de travail Azure Container Registry. Choisissez d’autres niveaux pour un stockage et un débit d’image accrus, ainsi que des fonctionnalités telles que la connexion à l’aide d’un point de terminaison privé. Pour plus d’informations sur les niveaux de service disponibles (SKU), consultez Niveaux de service des registres de conteneurs.

Quand le message Déploiement réussi s’affiche, sélectionnez le registre de conteneurs dans le portail.

Vue d’ensemble du registre de conteneurs dans le portail

Prenez note du nom du registre et de la valeur du Serveur de connexion, qui est un nom complet se terminant par azurecr.io dans le cloud Azure. Si vous avez sélectionné une option DNL, le nom du serveur de connexion inclut un hachage unique.

Utilisez le serveur de connexion dans les étapes suivantes lorsque vous envoyez et extrayez des images avec Docker, ainsi que dans des références en aval telles que Dockerfiles, Kubernetes YAML et les graphiques Helm.

Se connecter au registre

Avant d’envoyer (push) et de tirer (pull) des images conteneur, vous devez vous connecter à l’instance du registre. Connectez-vous à Azure CLI sur votre machine locale, puis exécutez la commande az acr login.

Spécifiez uniquement le nom de la ressource de registre lors de la connexion avec Azure CLI, tel que az acr login -n registryname. N’utilisez pas le nom complet du serveur de connexion, tel que registryname.azurecr.io ou registryname-hash.azurecr.io (pour les registres compatibles DNL).

az acr login --name <registry-name>

Exemple :

az acr login --name contosoacrregistry

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

Envoyer l’image au registre

Pour envoyer une image dans un registre Azure Container Registry, vous devez tout d’abord disposer d’une 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. Pour cet exemple, tirez l’image hello-world à partir de Microsoft Container Registry.

docker pull mcr.microsoft.com/hello-world

Avant de pouvoir "push" une image vers votre registre, vous devez la taguer à l’aide de la commande docker tag avec le nom complet de votre serveur de connexion de votre registre.

  • Le format de nom de serveur de connexion pour les registres protégés par le Libellé de Nom de Domaine (DNL), avec un hachage unique de nom DNS inclus, est mycontainerregistry-abc123.azurecr.io.
  • Le format de nom du serveur de connexion pour les registres créés avec l’option Unsecure DNL est mycontainerregistry.azurecr.io.

Par exemple, si votre registre a été créé avec l’étendue DNL Tenant Reuse, le serveur de connexion peut ressembler à mycontainerregistry-abc123.azurecr.io avec un hachage dans le nom DNS. Si votre registre a été créé avec l’option Unsecure DNL, le serveur de connexion ressemblerait à mycontainerregistry.azurecr.io sans le hachage.

Pour plus d’informations sur les options DNL lors de la création du Registre et des implications du nom DNS, consultez Démarrage rapide - Créer un registre dans le portail.

Exemple : marquage d'une image avant l'envoi

Étiquetez l’image à l’aide de la commande docker tag à l’aide du serveur de connexion de votre registre.

Image de balisage pour un registre non-DNL :

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

Image de balisage pour un registre compatible DNL :

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

Pour finir, utilisez la commande docker push pour envoyer l’image vers l’instance du registre. Remplacez <login-server> par le nom du serveur de connexion de votre instance de registre. Cet exemple crée le référentiel hello-world qui contient l’image hello-world:v1.

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. (Notez que cette commande docker rmi ne supprime pas l’image du référentiel hello-world dans votre registre de conteneurs Azure.)

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

Répertorier les images conteneur

Pour lister les images de votre registre, accédez à ce registre dans le portail, sélectionnez Référentiels, puis le référentiel hello-world que vous avez créé avec docker push.

Lister les images conteneur dans le portail

En sélectionnant le référentiel hello-world, vous voyez l’image étiquetée v1 sous Étiquettes.

Exécuter l’image à partir du registre

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 :

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

Exemple de sortie :

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 ressources

Pour supprimer vos ressources, accédez au groupe de ressources myResourceGroup dans le portail. Une fois le groupe de ressources chargé, cliquez sur Supprimer le groupe de ressources pour supprimer le groupe de ressources, le registre de conteneurs et les images conteneur stockées à cet endroit.

Supprimer un groupe de ressources dans le portail

Étapes suivantes

Dans ce guide de démarrage rapide, vous avez créé un registre Azure Container Registry avec le portail Azure, envoyé (push) une image conteneur, puis tiré (pull) et exécuté l’image à partir du registre. Passez à présent au tutoriel sur Azure Container Registry (ACR) pour approfondir vos connaissances.