Comment utiliser la commande docker image pull pour télécharger des 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 à utiliser la commande docker pull pour télécharger des images Docker à partir de registres. Vous explorerez différentes méthodes pour télécharger des images, notamment le téléchargement d'une image spécifique en fonction de son étiquette (tag) depuis Docker Hub, le téléchargement d'une image en utilisant son empreinte immuable (digest) pour un contrôle de version garanti, le téléchargement de toutes les images étiquetées d'un dépôt (repository), et le téléchargement d'images depuis des registres autres que Docker Hub.

En effectuant ces étapes, vous acquerrez une expérience pratique dans l'obtention d'images Docker, ce qui est une compétence fondamentale pour la construction et l'exécution d'applications conteneurisées. Vous apprendrez à spécifier les versions et les sources des images, vous assurant ainsi de pouvoir obtenir de manière fiable les images dont vous avez besoin pour vos projets.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/ImageOperationsGroup(["Image Operations"]) docker/ImageOperationsGroup -.-> docker/pull("Pull Image from Repository") docker/ImageOperationsGroup -.-> docker/images("List Images") subgraph Lab Skills docker/pull -.-> lab-555159{{"Comment utiliser la commande docker image pull pour télécharger des images"}} docker/images -.-> lab-555159{{"Comment utiliser la commande docker image pull pour télécharger des images"}} end

Télécharger une image spécifique par étiquette (tag) depuis Docker Hub

Dans cette étape, vous apprendrez à télécharger une image Docker spécifique en utilisant son étiquette (tag) depuis Docker Hub. Docker Hub est un registre public qui héberge de nombreuses images Docker officielles et contribuées par la communauté. Télécharger une image signifie la télécharger depuis un registre sur votre machine locale.

La commande de base pour télécharger une image est docker pull <image_name>:<tag>. Si vous ne spécifiez pas d'étiquette (tag), Docker téléchargera par défaut l'étiquette latest. Cependant, il est recommandé de spécifier une étiquette pour vous assurer d'obtenir une version spécifique de l'image.

Téléchargeons l'image hello-world avec l'étiquette latest. C'est une très petite image utilisée pour tester si votre installation Docker fonctionne correctement.

docker pull hello-world:latest

Vous devriez voir un affichage indiquant que Docker télécharge les couches (layers) de l'image.

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

Maintenant, téléchargeons l'image ubuntu avec une étiquette spécifique, par exemple 20.04. Cela téléchargera l'image Ubuntu 20.04 LTS.

docker pull ubuntu:20.04

Vous verrez un affichage similaire montrant la progression du téléchargement.

20.04: Pulling from library/ubuntu
... (download progress) ...
Status: Downloaded newer image for ubuntu:20.04
docker.io/library/ubuntu:20.04

Pour voir les images que vous avez téléchargées, vous pouvez utiliser la commande docker images.

docker images

Cette commande liste toutes les images stockées sur votre machine locale, y compris leur dépôt (repository), leur étiquette (tag), leur identifiant d'image (image ID), leur date de création et leur taille.

REPOSITORY    TAG       IMAGE ID       CREATED        SIZE
ubuntu        20.04     ...            ...            ...
hello-world   latest    ...            ...            ...

Vous avez réussi à télécharger des images spécifiques par étiquette (tag) depuis Docker Hub.

Télécharger une image en utilisant son empreinte immuable (digest)

Dans cette étape, vous apprendrez à télécharger une image Docker en utilisant son empreinte immuable (digest). Bien que les étiquettes (tags) soient pratiques, elles peuvent être mises à jour pour pointer vers une version différente d'une image. En revanche, une empreinte (digest) est un identifiant unique pour une configuration spécifique de couches d'image et son historique. C'est un moyen plus fiable de vous assurer de télécharger exactement la même image à chaque fois.

Le format pour télécharger une image par empreinte (digest) est docker pull <image_name>@<digest>.

Tout d'abord, trouvons l'empreinte (digest) d'une image que nous avons déjà. Nous pouvons utiliser la commande docker images --digests pour afficher les empreintes (digests) des images locales.

docker images --digests

Vous devriez voir un affichage similaire à celui-ci, y compris la colonne DIGEST :

REPOSITORY    TAG       DIGEST                                                                      IMAGE ID       CREATED        SIZE
ubuntu        20.04     sha256:...   ...            ...
hello-world   latest    sha256:f52335ce493f8f15cfcf46725b2909db9087b688aedabbbd2a167ae30b6da6fc   ...            ...            ...

Utilisons l'empreinte (digest) de l'image hello-world. Copiez la chaîne complète de l'empreinte (commençant par sha256:).

Maintenant, essayons de télécharger à nouveau l'image hello-world, mais cette fois en utilisant son empreinte (digest). Remplacez <digest> par l'empreinte réelle que vous avez copiée.

docker pull hello-world@sha256:f52335ce493f8f15cfcf46725b2909db9087b688aedabbbd2a167ae30b6da6fc

Étant donné que vous avez probablement déjà cette couche d'image, Docker indiquera que l'image est à jour.

sha256:f52335ce493f8f15cfcf46725b2909db9087b688aedabbbd2a167ae30b6da6fc: Pulling from library/hello-world
Digest: sha256:f52335ce493f8f15cfcf46725b2909db9087b688aedabbbd2a167ae30b6da6fc
Status: Downloaded newer image for hello-world@sha256:f52335ce493f8f15cfcf46725b2909db9087b688aedabbbd2a167ae30b6da6fc
docker.io/library/hello-world@sha256:f52335ce493f8f15cfcf46725b2909db9087b688aedabbbd2a167ae30b6da6fc

Le téléchargement par empreinte (digest) est particulièrement utile dans les environnements de production ou les scripts automatisés où vous devez garantir que vous déployez une version spécifique et immuable d'une image.

Vous pouvez vérifier les images à nouveau en utilisant docker images --digests. Vous verrez l'image hello-world répertoriée, éventuellement avec à la fois l'étiquette (tag) et l'empreinte (digest) si vous l'avez téléchargée par étiquette précédemment.

docker images --digests

Télécharger toutes les images étiquetées (tagged) d'un dépôt (repository)

Dans cette étape, vous apprendrez à télécharger toutes les images étiquetées (tagged) d'un dépôt spécifique sur Docker Hub. Cela peut être utile lorsque vous souhaitez télécharger plusieurs versions d'une image à des fins de test ou pour d'autres raisons.

Pour télécharger toutes les images étiquetées (tagged) d'un dépôt (repository), vous pouvez utiliser la commande docker pull -a <image_name>. Le drapeau -a signifie "toutes les étiquettes" (all-tags).

Essayons de télécharger toutes les images étiquetées (tagged) du dépôt (repository) alpine. Alpine est une distribution Linux légère souvent utilisée dans les conteneurs.

docker pull -a alpine

Cette commande lancera le téléchargement de toutes les images du dépôt (repository) alpine qui ont une étiquette (tag). Vous verrez un affichage montrant le téléchargement de diverses étiquettes (tags) telles que latest, 3.14, 3.15, etc.

Using default tag: latest
latest: Pulling from library/alpine
... (download progress for various tags) ...
Status: Downloaded newer image for alpine:latest
Status: Downloaded newer image for alpine:3.14
Status: Downloaded newer image for alpine:3.15
...
docker.io/library/alpine:latest
docker.io/library/alpine:3.14
docker.io/library/alpine:3.15
...

Selon le nombre d'étiquettes (tags) dans le dépôt (repository), cette commande peut prendre un certain temps à se terminer.

Une fois que la commande est terminée, vous pouvez utiliser docker images pour voir toutes les images alpine que vous avez téléchargées.

docker images | grep alpine

Vous verrez une liste d'images alpine avec différentes étiquettes (tags).

REPOSITORY    TAG       IMAGE ID       CREATED        SIZE
alpine        latest    ...            ...            ...
alpine        3.14      ...            ...            ...
alpine        3.15      ...            ...            ...
...

Cette méthode est efficace pour télécharger plusieurs versions d'une image à partir d'un seul dépôt (repository).

Télécharger une image depuis un registre différent

Dans cette étape, vous apprendrez à télécharger une image Docker depuis un registre autre que Docker Hub. Bien que Docker Hub soit le registre par défaut, vous pourriez avoir besoin de télécharger des images depuis des registres privés, des registres de fournisseurs cloud (comme Google Container Registry, Amazon Elastic Container Registry) ou d'autres registres publics.

Pour télécharger une image depuis un registre différent, vous devez spécifier le nom d'hôte du registre avant le nom de l'image. Le format est généralement <registry_hostname>/<image_name>:<tag> ou <registry_hostname>/<user_or_organization>/<image_name>:<tag>.

Pour cet exemple, nous allons télécharger une image depuis Google Container Registry (GCR). Nous allons télécharger l'image hello - app depuis le projet google - samples. Le nom d'hôte du registre pour GCR est gcr.io.

docker pull gcr.io/google-samples/hello-app:1.0

Cette commande indique à Docker de télécharger l'image nommée hello - app avec l'étiquette (tag) 1.0 depuis le registre situé à gcr.io au sein du projet google - samples.

Vous verrez un affichage indiquant le processus de téléchargement depuis le registre spécifié.

1.0: Pulling from google-samples/hello-app
... (download progress) ...
Status: Downloaded newer image for gcr.io/google-samples/hello-app:1.0
gcr.io/google-samples/hello-app:1.0

Une fois le téléchargement terminé, vous pouvez lister vos images locales en utilisant docker images pour voir l'image que vous venez de télécharger depuis GCR.

docker images

Vous devriez voir gcr.io/google - samples/hello - app répertoriée dans vos images.

REPOSITORY                         TAG       IMAGE ID       CREATED        SIZE
gcr.io/google-samples/hello-app    1.0       ...            ...            ...
ubuntu                             20.04     ...            ...            ...
hello-world                        latest    ...            ...            ...
alpine                             latest    ...            ...            ...
alpine                             3.14      ...            ...            ...
alpine                             3.15      ...            ...            ...
...

Cela démontre comment télécharger des images depuis des registres autres que le registre par défaut Docker Hub en spécifiant le nom d'hôte du registre.

Résumé

Dans ce laboratoire (lab), vous avez appris à utiliser la commande docker pull pour télécharger des images Docker depuis des registres. Vous avez commencé par télécharger des images spécifiques depuis Docker Hub en utilisant leurs étiquettes (tags), en comprenant que la spécification d'une étiquette (tag) est cruciale pour obtenir une version particulière. Vous avez également appris à afficher les images que vous avez téléchargées localement en utilisant la commande docker images.

Le laboratoire (lab) a ensuite démontré comment télécharger une image en utilisant son digest immuable, vous garantissant de récupérer exactement la même version de l'image, indépendamment des changements d'étiquette (tag). Vous avez également exploré le téléchargement de toutes les images étiquetées (tagged) d'un dépôt (repository) et le téléchargement d'images depuis des registres autres que Docker Hub, élargissant ainsi votre capacité à accéder à des images provenant de diverses sources.