Comment utiliser la commande docker scout quickview pour obtenir un aperçu de l'image

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 à utiliser la commande docker inspect pour obtenir un aperçu rapide des images Docker. Vous explorerez comment obtenir des informations détaillées sur une image spécifique, identifier et inspecter l'image construite le plus récemment, et comprendre comment extraire les données pertinentes de la sortie de l'inspection en utilisant des options de formatage. Le laboratoire vous guidera à travers des exemples pratiques utilisant des images d'exemple et un simple Dockerfile.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/ImageOperationsGroup(["Image Operations"]) docker(("Docker")) -.-> docker/DockerfileGroup(["Dockerfile"]) docker(("Docker")) -.-> docker/ContainerOperationsGroup(["Container Operations"]) docker/ContainerOperationsGroup -.-> docker/inspect("Inspect Container") docker/ImageOperationsGroup -.-> docker/pull("Pull Image from Repository") docker/ImageOperationsGroup -.-> docker/images("List Images") docker/DockerfileGroup -.-> docker/build("Build Image from Dockerfile") subgraph Lab Skills docker/inspect -.-> lab-555210{{"Comment utiliser la commande docker scout quickview pour obtenir un aperçu de l'image"}} docker/pull -.-> lab-555210{{"Comment utiliser la commande docker scout quickview pour obtenir un aperçu de l'image"}} docker/images -.-> lab-555210{{"Comment utiliser la commande docker scout quickview pour obtenir un aperçu de l'image"}} docker/build -.-> lab-555210{{"Comment utiliser la commande docker scout quickview pour obtenir un aperçu de l'image"}} end

Obtenir un aperçu rapide d'une image spécifique

Dans cette étape, vous apprendrez à obtenir un aperçu rapide d'une image Docker spécifique en utilisant la commande docker inspect. Cette commande fournit des informations détaillées sur un objet Docker, y compris les images, les conteneurs, les volumes et les réseaux.

Tout d'abord, téléchargeons une image d'exemple que nous pouvons inspecter. Nous utiliserons l'image hello-world, qui est une très petite image utilisée pour les tests.

docker pull hello-world

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

Maintenant que nous avons l'image, nous pouvons utiliser docker inspect pour obtenir des informations à son sujet.

docker inspect hello-world

Cette commande affichera un grand objet JSON contenant divers détails sur l'image hello-world, comme son ID, sa date de création, son architecture, son système d'exploitation et sa configuration.

Pour obtenir un aperçu rapide, vous pourriez être intéressé par des champs spécifiques dans cette sortie JSON. Vous pouvez utiliser le drapeau -f ou --format avec docker inspect pour spécifier un modèle Go qui formate la sortie. Par exemple, pour voir l'ID de l'image et sa date de création, vous pouvez utiliser la commande suivante :

docker inspect -f '{{.Id}} {{.Created}}' hello-world

Cette commande affichera l'ID de l'image suivi de son horodatage de création. Les {{.Id}} et {{.Created}} sont des espaces réservés qui font référence aux champs Id et Created dans la sortie JSON de docker inspect.

Vous pouvez explorer d'autres champs dans la sortie JSON de la commande complète docker inspect hello-world et les utiliser dans votre chaîne de formatage pour obtenir les informations spécifiques dont vous avez besoin.

Obtenir un aperçu rapide de l'image construite le plus récemment

Dans cette étape, vous apprendrez à identifier et à obtenir un aperçu rapide de l'image Docker construite le plus récemment. Cela est utile lorsque vous développez et construisez activement des images et que vous souhaitez rapidement inspecter la dernière version.

Tout d'abord, créons un simple Dockerfile pour construire une image. Dans votre répertoire ~/project, créez un fichier nommé Dockerfile avec le contenu suivant :

FROM alpine:latest
RUN echo "Hello, Docker!" > /app/message.txt
CMD cat /app/message.txt

Ce Dockerfile utilise l'image de base alpine, ajoute un fichier nommé message.txt avec le contenu "Hello, Docker!" et définit la commande pour afficher le contenu de ce fichier lorsque le conteneur est exécuté.

Maintenant, construisons l'image Docker en utilisant la commande docker build. Nous allons la marquer avec my-recent-image.

docker build -t my-recent-image .

Le . à la fin de la commande indique que le Dockerfile se trouve dans le répertoire actuel (~/project). Vous verrez une sortie montrant le processus de construction.

Une fois la construction terminée, vous pouvez lister vos images en utilisant docker images.

docker images

Vous devriez voir my-recent-image répertoriée, ainsi que l'image hello-world de l'étape précédente et l'image de base alpine. L'image construite le plus récemment apparaîtra généralement en haut de la liste ou aura la date de création la plus récente.

Pour obtenir un aperçu rapide de l'image construite le plus récemment, vous pouvez combiner docker images avec des outils en ligne de commande tels que head et awk pour extraire l'ID de l'image de la première image répertoriée (qui est généralement la plus récente). Ensuite, vous pouvez utiliser docker inspect avec cet ID.

docker inspect $(docker images -q | head -n 1)

Décortiquons cette commande :

  • docker images -q : Cela liste uniquement les ID des images.
  • head -n 1 : Cela prend la première ligne de la sortie, qui est l'ID de l'image la plus récente.
  • $(...) : Il s'agit d'une substitution de commande, qui exécute la commande à l'intérieur des parenthèses et remplace sa sortie dans la commande externe.
  • docker inspect ... : Cela inspecte l'image avec l'ID obtenu à partir de la substitution de commande.

Cela affichera les informations JSON détaillées pour l'image construite le plus récemment. Vous pouvez à nouveau utiliser le drapeau -f avec docker inspect pour formater la sortie selon vos besoins, de la même manière que dans l'étape précédente.

Par exemple, pour voir l'ID et la date de création de l'image la plus récente :

docker inspect -f '{{.Id}} {{.Created}}' $(docker images -q | head -n 1)

Cela offre un moyen rapide d'obtenir les informations clés sur l'image que vous venez de construire.

Obtenir un aperçu rapide à partir d'un fichier SPDX

Dans cette étape, vous apprendrez à obtenir un aperçu rapide des composants logiciels d'une image Docker en générant et en examinant un fichier SPDX (Software Package Data Exchange). SPDX est une norme ouverte pour communiquer les informations sur la liste des composants logiciels (SBOM, Software Bill of Materials), y compris les composants, les licences et les droits d'auteur.

La génération d'un fichier SPDX pour une image Docker nécessite un outil capable d'analyser les couches de l'image et d'extraire les informations nécessaires. Un tel outil est syft, un outil en ligne de commande pour générer des SBOM à partir d'images de conteneurs et de systèmes de fichiers.

Étant donné que syft n'est pas préinstallé, nous allons le télécharger et l'installer. Nous allons télécharger la dernière version pour Linux.

curl -sSfL https://raw.githubusercontent.com/anchore/syft/main/install.sh | sudo bash -s -- -b /usr/local/bin

Cette commande télécharge le script d'installation de syft et l'exécute avec sudo pour installer le binaire dans /usr/local/bin. Vous pourriez être invité à saisir votre mot de passe, mais l'utilisateur labex a accès à sudo sans mot de passe.

Après l'installation, vous pouvez vérifier que syft est installé en vérifiant sa version :

syft version

Vous devriez voir les informations de version de syft.

Maintenant, générons un fichier SPDX pour l'image my-recent-image que nous avons construite à l'étape précédente. Nous allons envoyer le résultat dans un fichier nommé my-recent-image.spdx.json dans le répertoire ~/project.

syft my-recent-image -o spdx-json > ~/project/my-recent-image.spdx.json

Cette commande demande à syft d'analyser l'image my-recent-image et de sortir les résultats au format JSON SPDX, redirigeant la sortie vers le fichier spécifié. Ce processus peut prendre un moment en fonction de la taille de l'image.

Une fois la commande terminée, vous aurez un fichier JSON SPDX contenant un inventaire détaillé des paquets logiciels trouvés dans l'image. Vous pouvez afficher le contenu de ce fichier à l'aide d'un éditeur de texte comme nano :

nano ~/project/my-recent-image.spdx.json

À l'intérieur du fichier, vous trouverez des informations sur l'image elle-même et une liste des paquets détectés, y compris leurs noms, versions et licences. Cela fournit un aperçu rapide des composants logiciels présents dans votre image sans avoir besoin d'exécuter le conteneur ou d'inspecter manuellement les couches individuelles.

Vous pouvez faire défiler le fichier pour voir les différentes sections et les informations qu'elles contiennent. Recherchez le tableau packages, qui liste les composants logiciels détectés.

Appuyez sur Ctrl + X pour quitter nano.

Résumé

Dans ce laboratoire, vous avez appris à obtenir un aperçu rapide des images Docker en utilisant la commande docker inspect. Vous avez pratiqué l'inspection d'une image spécifique en téléchargeant l'image hello-world et en utilisant docker inspect pour afficher ses informations détaillées au format JSON. Vous avez également appris à utiliser le drapeau -f avec docker inspect et les modèles Go pour extraire et formater des champs spécifiques tels que l'ID de l'image et la date de création, permettant ainsi un aperçu rapide personnalisé.

En outre, vous avez exploré comment identifier et inspecter l'image Docker construite le plus récemment, ce qui est particulièrement utile pendant les cycles de développement actifs. Cela impliquait de comprendre comment lister les images et éventuellement les filtrer ou les trier pour trouver la plus récente à inspecter.