Transmettre votre première image à votre registre de conteneurs Azure à l’aide de l’interface de ligne de commande Docker

Un registre de conteneurs Azure stocke et gère des images conteneurs privées ainsi que d’autres artefacts, de la même manière que Docker Hub stocke des images conteneurs Docker publiques. Vous pouvez utiliser l’interface de ligne de commande Docker (Docker CLI) pour la connexion, la transmission, l’extraction et d’autres opérations d’image conteneur sur le registre de conteneurs.

Dans les étapes suivantes, vous allez télécharger une image Nginx publique, l’étiqueter pour votre registre de conteneurs Azure privé, la transmettre à votre registre, puis l’extraire du registre.

Prérequis

  • Azure Container Registry : créez un Registre de conteneur dans votre abonnement Azure. Par exemple, utilisez le portail Azure, Azure CLI ou Azure PowerShell.
  • Docker CLI : Docker doit également être installé en local. Docker fournit des packages qui le configurent facilement sur n’importe quel système macOS, Windows ou Linux.

Se connecter à un Registre

Il existe plusieurs façons de s’authentifier auprès de votre registre de conteneurs privé.

La méthode recommandée avec une ligne de commande consiste à utiliser la commande Azure CLI az acr login. Par exemple, pour accéder à un registre nommé myregistry, connectez-vous à Azure CLI, puis authentifiez-vous auprès de votre registre :

az login
az acr login --name myregistry

Vous pouvez également vous connecter avec la commande docker login. Par exemple, vous pouvez avoir affecté un principal du service à votre registre dans un scénario d’automatisation. Lorsque vous exécutez la commande suivante, fournissez de manière interactive l'appID (nom d'utilisateur) et le mot de passe du principal du service dès que vous y êtes invité. Pour connaître les meilleures pratiques de gestion des informations d'identification, consultez la référence de la commande docker login :

docker login myregistry.azurecr.io

Les deux commandes retournent Login Succeeded une fois terminées.

Notes

  • Vous souhaiterez peut-être utiliser Visual Studio Code avec l’extension Docker à des fins de connexion plus rapide et plus pratique.

Conseil

Spécifiez toujours le nom complet du registre (tout en minuscules) lorsque vous utilisez docker login et lorsque vous étiquetez des images à pousser dans votre registre. Dans les exemples de cet article, le nom complet est myregistry.azurecr.io.

Extraire une image Nginx publique

Tout d’abord, extrayez une image Nginx publique sur votre ordinateur local. Cet exemple tire (pull) l’image Nginx officielle.

docker pull nginx

Exécutez localement le conteneur

Exécutez la commande docker run suivante pour démarrer une instance locale du conteneur Nginx de manière interactive (-it) sur le port 8080. L’argument --rm spécifie que le conteneur doit être supprimé lorsque vous l’arrêtez.

docker run -it --rm -p 8080:80 nginx

Accédez à http://localhost:8080 pour afficher la page web par défaut servie par Nginx dans le conteneur en cours d’exécution. Une page similaire à celle ci-dessous doit s'afficher :

Nginx sur un ordinateur local

Étant donné que vous avez démarré le conteneur de manière interactive avec -it, vous pouvez voir la sortie du serveur Nginx sur la ligne de commande après y avoir accédé dans votre navigateur.

Pour arrêter et supprimer le conteneur, appuyez sur Control+C.

Créer un alias de l’image

Utilisez une balise Docker pour créer un alias de l’image, avec un chemin complet vers votre registre. Cet exemple spécifie l’espace de noms samples pour éviter l’encombrement à la racine du Registre.

docker tag nginx myregistry.azurecr.io/samples/nginx

Pour plus d’informations sur le balisage avec des espaces de noms, consultez la section Espaces de noms du référentiel dans Bonnes pratiques pour Azure Container Registry.

Pousser (push) l’image dans votre registre

Maintenant que vous avez étiqueté l’image avec le chemin complet de votre registre privé, vous pouvez la pousser dans le registre avec docker push :

docker push myregistry.azurecr.io/samples/nginx

Tirer (pull) l’image de votre registre

Utilisez la commande docker pull pour tirer l’image de votre registre :

docker pull myregistry.azurecr.io/samples/nginx

Démarrer le conteneur Nginx

Utilisez la commande docker run pour exécuter l’image que vous avez tirée de votre registre :

docker run -it --rm -p 8080:80 myregistry.azurecr.io/samples/nginx

Accédez à http://localhost:8080 pour afficher le conteneur en cours d’exécution.

Pour arrêter et supprimer le conteneur, appuyez sur Control+C.

Supprimer l’image (facultatif)

Si vous n’avez plus besoin de l’image Nginx, vous pouvez la supprimer localement à l’aide de la commande docker rmi.

docker rmi myregistry.azurecr.io/samples/nginx

Pour supprimer des images de votre registre de conteneurs Azure, vous pouvez utiliser la commande Azure CLI az acr repository delete. Par exemple, la commande suivante supprime le manifeste référencé par l'étiquette samples/nginx:latest, toutes les données de couche uniques et toutes les autres étiquettes référençant le manifeste.

az acr repository delete --name myregistry --image samples/nginx:latest

Recommandations

Plus d’informations sur les options d’authentification sont disponibles ici.

Étapes suivantes

Maintenant que vous connaissez les principes de base, vous êtes prêt à utiliser votre registre. Par exemple, déployez des images de conteneur à partir de votre Registre vers :

Si vous le souhaitez, vous pouvez installer l’extension Docker pour Visual Studio Code et l’extension Compte Azure pour utiliser vos registres de conteneurs Azure. Dans Visual Studio Code, vous pouvez tirer (pull) et envoyer (push) des images vers un registre de conteneurs Azure, et exécuter ACR Tasks.