Comment utiliser la commande docker scout stream pour gérer les flux

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, vous apprendrez à gérer les flux (streams) à l'aide de la commande docker scout stream. Les flux sont essentiellement des collections d'images, et comprendre comment interagir avec eux est crucial pour organiser et gérer efficacement vos images Docker.

Vous commencerez par apprendre à lister les flux existants pour voir quelles collections d'images sont disponibles. Ensuite, vous explorerez comment lister les images spécifiques contenues dans un flux particulier. Enfin, vous apprendrez à enregistrer une image dans un flux pour une plateforme spécifique, ce qui vous permettra d'associer les images à leurs flux et plateformes respectifs.


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-555216{{"Comment utiliser la commande docker scout stream pour gérer les flux"}} docker/tag -.-> lab-555216{{"Comment utiliser la commande docker scout stream pour gérer les flux"}} docker/images -.-> lab-555216{{"Comment utiliser la commande docker scout stream pour gérer les flux"}} end

Lister les flux existants

Dans cette étape, vous apprendrez à lister les flux (streams) existants dans Docker. Les flux sont essentiellement des dépôts ou des collections d'images. Lister les flux vous permet de voir quelles collections d'images vous sont disponibles.

Tout d'abord, utilisons la commande docker images pour lister toutes les images disponibles. Cette commande affiche les images actuellement téléchargées sur votre système.

docker images

Vous devriez voir une sortie similaire à celle-ci, bien que les images spécifiques varient en fonction de celles qui ont été téléchargées :

REPOSITORY    TAG       IMAGE ID       CREATED        SIZE
ubuntu        latest    d621e9f15c2f   2 weeks ago    72.8MB
hello-world   latest    d2c94e258dcb   2 months ago   13.3kB

La colonne REPOSITORY dans la sortie représente le nom du flux. La colonne TAG représente une version spécifique au sein de ce flux.

Pour lister uniquement les noms de flux (dépôts) uniques, vous pouvez traiter la sortie de docker images. Nous pouvons utiliser des outils en ligne de commande tels que awk et sort pour y parvenir.

docker images | awk '{print $1}' | sort -u

Décortiquons cette commande :

  • docker images : Cette commande liste toutes les images.
  • | : Il s'agit d'un tuyau (pipe) qui envoie la sortie de la commande de gauche en entrée de la commande de droite.
  • awk '{print $1}' : awk est un puissant outil de traitement de texte. {print $1} indique à awk d'imprimer la première colonne de chaque ligne de l'entrée. Dans la sortie de docker images, la première colonne est le REPOSITORY.
  • | : Un autre tuyau pour envoyer la sortie de awk à sort.
  • sort -u : sort trie les lignes d'entrée par ordre alphabétique. -u signifie unique, ce qui supprime les lignes en double. Cela nous donne une liste de noms de dépôts uniques, qui sont nos flux.

La sortie sera une liste de noms de dépôts uniques, comme ceci :

REPOSITORY
hello-world
ubuntu

Cette commande permet d'effectiverment lister les flux (dépôts) existants pour lesquels des images ont été téléchargées sur votre système.

Lister les images d'un flux spécifique

Dans l'étape précédente, vous avez appris à lister tous les flux (dépôts) existants. Maintenant, vous allez apprendre à lister les images appartenant à un flux spécifique. Cela est utile lorsque vous souhaitez voir les différentes versions (tags) d'une image particulière.

Pour lister les images d'un flux spécifique, vous pouvez utiliser la commande docker images suivie du nom du flux. Par exemple, pour lister toutes les images du flux ubuntu, vous utiliseriez :

docker images ubuntu

Avant d'exécuter cette commande, assurons-nous que l'image ubuntu est disponible sur votre système. Si ce n'est pas le cas, vous pouvez la télécharger à l'aide de la commande docker pull.

docker pull ubuntu

Vous devriez voir une sortie indiquant que l'image est en cours de téléchargement.

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

Maintenant que l'image ubuntu est disponible, vous pouvez lister les images du flux ubuntu :

docker images ubuntu

La sortie affichera les images appartenant au flux ubuntu. Si vous n'avez téléchargé que le tag latest, vous verrez quelque chose comme ceci :

REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
ubuntu       latest    d621e9f15c2f   2 weeks ago    72.8MB

Si vous aviez téléchargé d'autres tags d'ubuntu, ils seraient également listés ici.

Vous pouvez remplacer ubuntu par n'importe quel autre nom de flux que vous avez vu dans la sortie de docker images de l'étape précédente pour lister les images de ce flux spécifique. Par exemple, pour lister les images du flux hello-world :

docker images hello-world

Cette commande vous montrera les images disponibles pour le flux hello-world.

Enregistrer une image dans un flux pour une plateforme spécifique

Dans cette étape, vous apprendrez à « enregistrer » une image dans un flux pour une plateforme spécifique. En termes Docker, cela se fait généralement en étiquetant (tagging) une image existante avec un nouveau nom qui inclut le flux souhaité et éventuellement des informations sur la plateforme. L'étiquetage d'une image crée essentiellement un nouveau pointeur vers une couche d'image existante, vous permettant de faire référence à la même image avec un nom et une étiquette différents.

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

docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
  • SOURCE_IMAGE[:TAG] : Il s'agit du nom et de l'étiquette facultative de l'image existante que vous souhaitez étiqueter.
  • TARGET_IMAGE[:TAG] : Il s'agit du nouveau nom et de l'étiquette facultative que vous souhaitez attribuer à l'image. La partie TARGET_IMAGE représente le nom du flux.

Utilisons l'image ubuntu que nous avons téléchargée à l'étape précédente. Nous allons l'étiqueter avec un nouveau nom de flux, par exemple myubuntu.

Tout d'abord, vérifions l'image ubuntu existante et son ID :

docker images ubuntu

Vous verrez une sortie similaire à celle-ci, en notant l'IMAGE ID :

REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
ubuntu       latest    d621e9f15c2f   2 weeks ago    72.8MB

Maintenant, étiquetons l'image ubuntu:latest avec le nouveau nom de flux myubuntu et l'étiquette v1.0 :

docker tag ubuntu:latest myubuntu:v1.0

Si la commande réussit, elle ne produit pas beaucoup de sortie. Elle crée simplement la nouvelle étiquette.

Maintenant, listons les images à nouveau pour voir l'image nouvellement étiquetée :

docker images

Vous devriez maintenant voir à la fois l'image originale ubuntu:latest et la nouvelle image myubuntu:v1.0, toutes deux pointant vers le même IMAGE ID :

REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
myubuntu     v1.0      d621e9f15c2f   2 weeks ago    72.8MB
ubuntu       latest    d621e9f15c2f   2 weeks ago    72.8MB
hello-world  latest    d2c94e258dcb   2 months ago   13.3kB

Notez que myubuntu:v1.0 a le même IMAGE ID que ubuntu:latest. Cela confirme que myubuntu:v1.0 n'est qu'une nouvelle référence aux mêmes données d'image sous-jacentes.

Bien que la commande docker tag elle-même ne gère pas explicitement les plateformes lors du processus d'étiquetage, l'image elle-même peut être construite pour une plateforme spécifique. Lorsque vous téléchargez une image, Docker télécharge généralement l'image pour l'architecture de votre système. Si vous avez besoin de travailler avec des images pour différentes plateformes, vous utiliserez généralement des outils tels que docker buildx pour construire des images multi-plateformes ou spécifier la plateforme lors de l'opération de téléchargement (par exemple, docker pull --platform linux/amd64 ubuntu). Cependant, dans le cadre de « l'enregistrement » d'une image existante dans un flux, la commande docker tag est le moyen standard de créer une nouvelle référence à cette image au sein d'un nom de flux différent.

Résumé

Dans ce laboratoire, vous avez appris à gérer les flux (streams) à l'aide de la commande docker scout stream. Vous avez commencé par comprendre comment lister les flux existants, qui sont essentiellement des dépôts (repositories) ou des collections d'images. Vous avez utilisé la commande docker images pour afficher toutes les images téléchargées, puis vous avez traité la sortie avec awk et sort -u pour extraire et lister les noms de flux (dépôts) uniques.

Vous avez également appris à lister les images appartenant à un flux spécifique et à enregistrer une image dans un flux pour une plateforme spécifique. Ces étapes démontrent les opérations fondamentales pour organiser et gérer vos images Docker dans le contexte des flux.