Comment utiliser la commande docker image tag pour gérer les alias d'images

DockerDockerBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce laboratoire (lab), vous apprendrez à gérer efficacement les alias d'images Docker en utilisant la commande docker image tag. Nous commencerons par comprendre la structure et les composants des références d'images Docker, qui sont essentielles pour identifier et localiser des versions d'images spécifiques.

Après avoir acquis une compréhension de base des références d'images, vous aurez l'opportunité de tagger des images de différentes manières : par leur ID, par leur nom existant et par leur combinaison de nom et de tag. Enfin, vous apprendrez à tagger une image spécifiquement pour l'utiliser avec un registre Docker privé, vous permettant de pousser (push) et de tirer (pull) des images depuis des emplacements personnalisés.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/ImageOperationsGroup(["Image Operations"]) docker/ImageOperationsGroup -.-> docker/pull("Pull Image from Repository") docker/ImageOperationsGroup -.-> docker/tag("Tag an Image") docker/ImageOperationsGroup -.-> docker/images("List Images") subgraph Lab Skills docker/pull -.-> lab-555163{{"Comment utiliser la commande docker image tag pour gérer les alias d'images"}} docker/tag -.-> lab-555163{{"Comment utiliser la commande docker image tag pour gérer les alias d'images"}} docker/images -.-> lab-555163{{"Comment utiliser la commande docker image tag pour gérer les alias d'images"}} end

Comprendre les références d'images Docker

Dans cette étape, nous allons apprendre les références d'images Docker. Une référence d'image Docker est un nom qui pointe vers une version spécifique d'une image Docker. C'est ainsi que vous indiquez à Docker quelle image vous souhaitez utiliser lors de l'exécution d'un conteneur ou de l'exécution d'autres opérations liées aux images.

Une référence d'image complète se compose généralement de plusieurs parties :

[registry_hostname[:port]/]image_name[:tag]

Décortiquons ces parties :

  • registry_hostname[:port] : Il s'agit du nom d'hôte et du port facultatif du registre Docker où l'image est stockée. Si cette partie est omise, Docker utilise par défaut Docker Hub (docker.io).
  • image_name : C'est le nom de l'image. Il peut inclure un espace de noms (par exemple, library/ubuntu ou myuser/myapp). Si aucun espace de noms n'est spécifié pour les images officielles sur Docker Hub, l'espace de noms library/ est implicite (par exemple, ubuntu équivaut à library/ubuntu).
  • tag : Il s'agit d'un tag facultatif qui spécifie une version ou une variante spécifique de l'image. Si aucun tag n'est spécifié, Docker utilise par défaut le tag latest.

Regardons quelques exemples :

  • ubuntu : Cela fait référence au tag latest de l'image officielle ubuntu sur Docker Hub.
  • ubuntu:20.04 : Cela fait référence au tag 20.04 de l'image officielle ubuntu sur Docker Hub.
  • myuser/myapp : Cela fait référence au tag latest de l'image myapp dans le dépôt myuser sur Docker Hub.
  • myuser/myapp:v1.0 : Cela fait référence au tag v1.0 de l'image myapp dans le dépôt myuser sur Docker Hub.
  • myregistry.example.com:5000/myuser/myapp:v1.0 : Cela fait référence au tag v1.0 de l'image myapp dans le dépôt myuser sur le registre privé situé à myregistry.example.com sur le port 5000.

Pour voir comment les références d'images fonctionnent en pratique, téléchargeons (pull) une image en utilisant sa référence. Nous allons télécharger l'image hello-world, qui est une très petite image utilisée pour tester les installations Docker.

docker pull hello-world

Vous devriez voir une sortie indiquant que Docker télécharge l'image.

Using default tag: latest
latest: Pulling from library/hello-world
...
Status: Downloaded newer image for hello-world:latest
docker.io/library/hello-world:latest

Cette commande a téléchargé le tag latest de l'image hello-world depuis Docker Hub. La sortie confirme la référence complète docker.io/library/hello-world:latest.

Maintenant, listons les images que vous avez téléchargées.

docker images

Vous devriez voir l'image hello-world répertoriée.

REPOSITORY    TAG       IMAGE ID       CREATED        SIZE
hello-world   latest    <image_id>     <created_time>   <size>

La sortie montre le REPOSITORY (nom de l'image), le TAG, l'IMAGE ID, la date de création (CREATED) et la taille (SIZE) de l'image. L'IMAGE ID est un identifiant unique pour le contenu de l'image.

Comprendre les références d'images est crucial pour travailler avec Docker, car cela vous permet de spécifier exactement quelle image vous souhaitez utiliser.

Tagger une image en utilisant son ID

Dans cette étape, nous apprendrons à tagger une image Docker en utilisant son ID d'image. Tagger une image vous permet de lui donner un nouveau nom et/ou un nouveau tag, créant ainsi une nouvelle référence qui pointe vers le même contenu d'image. Cela est utile pour créer des alias, gérer les versions ou préparer une image à être poussée (push) vers un autre registre.

La commande de base pour tagger une image est docker tag. La syntaxe est la suivante :

docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]

Vous pouvez spécifier l'image source en utilisant son ID d'image, son nom ou sa combinaison de nom et de tag. Dans cette étape, nous utiliserons l'ID d'image.

Tout d'abord, listons à nouveau les images pour obtenir l'ID d'image de l'image hello-world que nous avons téléchargée (pull) à l'étape précédente.

docker images

Recherchez l'image hello-world dans la sortie et notez son IMAGE ID. Il s'agira d'une chaîne de caractères hexadécimaux, par exemple, bf756fb1cdb1. Vous n'avez besoin d'utiliser que les premiers caractères de l'ID, tant qu'ils sont uniques parmi vos images.

Maintenant, taggeons l'image hello-world en utilisant son ID d'image. Nous allons la tagger avec un nouveau nom, my-hello-world, et un tag v1.0. Remplacez <image_id> par l'ID d'image réel que vous avez noté à partir de la sortie de la commande docker images.

docker tag < image_id > my-hello-world:v1.0

Il n'y aura pas de sortie si la commande est exécutée avec succès.

Maintenant, listons à nouveau les images pour voir le nouveau tag.

docker images

Vous devriez maintenant voir une nouvelle entrée avec le dépôt my-hello-world et le tag v1.0. Remarquez qu'elle a le même IMAGE ID que l'image originale hello-world. Cela confirme que le nouveau tag n'est qu'un pointeur vers le même contenu d'image.

REPOSITORY       TAG       IMAGE ID       CREATED        SIZE
hello-world      latest    <image_id>     <created_time>   <size>
my-hello-world   v1.0      <image_id>     <created_time>   <size>

Vous avez réussi à tagger une image en utilisant son ID d'image. Il s'agit d'une opération fondamentale dans la gestion des images Docker.

Tagger une image en utilisant son nom

Dans cette étape, nous apprendrons à tagger une image Docker en utilisant son nom. C'est une autre façon courante de référencer une image lors du tagging. Lorsque vous utilisez seulement le nom de l'image sans tag, Docker suppose que vous faites référence à l'image avec le tag latest.

La syntaxe pour tagger en utilisant le nom de l'image est la même que précédemment :

docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]

Cette fois, notre SOURCE_IMAGE sera le nom de l'image. Nous allons de nouveau utiliser l'image hello-world. Comme nous ne spécifions pas de tag pour la source, Docker utilisera hello-world:latest.

Taggeons l'image hello-world avec un nouveau nom, another-hello-world, et un tag v2.0.

docker tag hello-world another-hello-world:v2.0

Encore une fois, il n'y aura pas de sortie si la commande est exécutée avec succès.

Maintenant, listons les images pour voir le nouveau tag.

docker images

Vous devriez maintenant voir une nouvelle entrée avec le dépôt another-hello-world et le tag v2.0. Comme dans l'étape précédente, ce nouveau tag pointe également vers le même IMAGE ID que l'image originale hello-world.

REPOSITORY          TAG       IMAGE ID       CREATED        SIZE
hello-world         latest    <image_id>     <created_time>   <size>
my-hello-world      v1.0      <image_id>     <created_time>   <size>
another-hello-world v2.0      <image_id>     <created_time>   <size>

Vous avez réussi à tagger une image en utilisant son nom. C'est un moyen pratique de créer de nouveaux tags pour la version latest d'une image.

Tagger une image en utilisant son nom et son tag

Dans cette étape, nous apprendrons à tagger une image Docker en utilisant son nom et son tag. C'est la façon la plus précise de référencer une version particulière d'une image lors du tagging.

La syntaxe reste la même :

docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]

Cette fois, notre SOURCE_IMAGE sera spécifiée à la fois par son nom et son tag. Nous allons utiliser l'image my-hello-world:v1.0 que nous avons créée à une étape précédente.

Taggeons l'image my-hello-world:v1.0 avec un nouveau nom, yet-another-hello-world, et un tag release.

docker tag my-hello-world:v1.0 yet-another-hello-world:release

Il n'y aura pas de sortie si la commande est exécutée avec succès.

Maintenant, listons les images pour voir le nouveau tag.

docker images

Vous devriez maintenant voir une nouvelle entrée avec le dépôt yet-another-hello-world et le tag release. Ce nouveau tag pointe également vers le même IMAGE ID que l'image originale hello-world et les autres tags que nous avons créés.

REPOSITORY              TAG       IMAGE ID       CREATED        SIZE
hello-world             latest    <image_id>     <created_time>   <size>
my-hello-world          v1.0      <image_id>     <created_time>   <size>
another-hello-world     v2.0      <image_id>     <created_time>   <size>
yet-another-hello-world release   <image_id>     <created_time>   <size>

Vous avez réussi à tagger une image en utilisant son nom et son tag. Cette méthode est utile lorsque vous souhaitez créer un nouveau tag basé sur une version spécifique déjà taggée d'une image.

Tagger une image pour un registre privé

Dans cette étape, nous apprendrons à tagger une image Docker afin qu'elle puisse être envoyée (push) vers un registre privé. Lorsque vous taggez une image pour un registre privé, vous devez inclure le nom d'hôte du registre et éventuellement le port dans la référence de l'image cible.

La syntaxe pour le tagging reste la même :

docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]

L'IMAGE CIBLE inclura désormais les informations sur le registre :

[nom_d'hôte_du_registre[:port]/]nom_de_l'image[:tag]

Imaginons que nous ayons un registre privé fonctionnant sur myregistry.example.com au port 5000. Nous allons tagger l'image hello-world (en utilisant son tag latest) pour la préparer à être envoyée vers ce registre hypothétique. Nous lui donnerons le nom my-hello-world et le tag prod.

docker tag hello-world:latest myregistry.example.com:5000/my-hello-world:prod

Il n'y aura pas de sortie si la commande est exécutée avec succès.

Maintenant, listons les images pour voir le nouveau tag avec le nom du registre.

docker images

Vous devriez maintenant voir une nouvelle entrée avec le dépôt myregistry.example.com:5000/my-hello-world et le tag prod. Ce tag pointe également vers le même IMAGE ID que l'image originale hello-world.

REPOSITORY                                TAG       IMAGE ID       CREATED        SIZE
hello-world                               latest    <image_id>     <created_time>   <size>
my-hello-world                            v1.0      <image_id>     <created_time>   <size>
another-hello-world                       v2.0      <image_id>     <created_time>   <size>
yet-another-hello-world                   release   <image_id>     <created_time>   <size>
myregistry.example.com:5000/my-hello-world prod      <image_id>     <created_time>   <size>

Vous avez réussi à tagger une image avec une référence qui inclut le nom d'hôte et le port d'un registre privé. C'est une étape nécessaire avant de pouvoir envoyer l'image vers ce registre en utilisant la commande docker push.

Résumé

Dans ce laboratoire, nous avons appris les bases des références d'images Docker, en comprenant leur structure, y compris le nom d'hôte facultatif du registre, le nom de l'image et le tag. Nous avons vu comment ces références sont utilisées pour identifier de manière unique et télécharger (pull) des versions spécifiques d'images depuis les registres Docker.

Ensuite, nous avons exploré comment utiliser la commande docker image tag pour créer des alias pour les images existantes. Nous avons pratiqué le tagging d'une image en utilisant son ID, son nom existant, ainsi que la combinaison de son nom et de son tag existants. Enfin, nous avons appris à tagger une image avec une référence incluant le nom d'hôte d'un registre privé, la préparant ainsi à être envoyée (push) vers un registre personnalisé.