Recherche de site Web

Analyser et explorer le contenu des images Docker


Comme vous le savez peut-être déjà, une image de conteneur Docker est un paquet logiciel léger, autonome et exécutable qui contient tout ce qui est nécessaire pour exécuter une application. C'est pourquoi les images de conteneurs sont souvent utilisées par les développeurs pour créer et distribuer des applications. Si vous êtes curieux de savoir ce qu'il y a dans une image Docker, ce guide bref pourrait vous aider. Aujourd'hui, nous allons apprendre à analyser et explorer le contenu des images Docker couche par couche en utilisant un outil nommé "Dive".

En analysant une image Docker, nous pouvons découvrir d'éventuels fichiers en double à travers les couches et les supprimer pour réduire la taille de l'image Docker.

L'utilitaire Dive n'est pas seulement un analyseur d'images Docker, mais il nous aide également à en construire un. Dive est un outil gratuit et open source écrit en langage de programmation Go.

Installer Dive sur Linux

Obtenez la dernière version depuis la page des versions et installez-la comme indiqué ci-dessous selon la distribution que vous utilisez.

Si vous êtes sur Debian ou Ubuntu, exécutez les commandes suivantes pour le télécharger et l'installer.

$ wget https://github.com/wagoodman/dive/releases/download/v0.0.8/dive_0.0.8_linux_amd64.deb
$ sudo apt install ./dive_0.0.8_linux_amd64.deb

Sur RHEL/CentOS :

$ wget https://github.com/wagoodman/dive/releases/download/v0.0.8/dive_0.0.8_linux_amd64.rpm
$ sudo rpm -i dive_0.0.8_linux_amd64.rpm

Il est disponible dans AUR, vous pouvez donc l'installer en utilisant n'importe quel outil d'assistance AUR, par exemple Yay, sur Arch Linux et ses variantes.

$ yay -S dive

Dive peut également être installé en utilisant le gestionnaire de paquets Linuxbrew.

$ brew tap wagoodman/dive
$ brew install dive

Pour d'autres méthodes d'installation, consultez la page GitHub du projet indiquée à la fin de ce guide.

Analyser et explorer le contenu des images Docker

Pour analyser une image Docker, il suffit d'exécuter la commande dive avec l'« ID de l'image » Docker. Vous pouvez obtenir les ID de vos images Docker en utilisant la commande « sudo docker images ».

$ sudo dive ea4c82dcd15a

Ici, ea4c82dcd15a est l'identifiant de l'image Docker.

La commande Dive analysera rapidement l'image Docker donnée et affichera son contenu dans le Terminal.

Explorez le contenu des images Docker avec Dive

Comme vous pouvez le voir dans la capture d'écran ci-dessus, les couches de l'image Docker donnée et ses détails, ainsi que l'espace gaspillé, sont affichés dans le volet de gauche. Dans le volet de droite, le contenu de chaque couche de l'image Docker donnée. Vous pouvez passer du volet de gauche au volet de droite en utilisant la touche Ctrl+ESPACE et les touches fléchées HAUT/BAS pour naviguer dans l'arborescence du répertoire.

La liste des raccourcis clavier pour utiliser « Dive ».

  • Ctrl+Espace - Passer d’un volet à l’autre, gauche et droit,
  • Barre d'espace - Développer/Réduire l'arborescence du répertoire,
  • Ctrl+A - Afficher/masquer les fichiers ajoutés,
  • Ctrl+R - Afficher/masquer les fichiers supprimés,
  • Ctrl+M - Afficher/masquer les fichiers modifiés,
  • Ctrl+U - Afficher/masquer les fichiers non modifiés,
  • Ctrl+ L - Afficher les modifications de calque,
  • Ctrl+A - Afficher les modifications de calque,
  • Ctrl+/ - Filtrer les fichiers,
  • Ctrl+C - Quitter.

Dans l'exemple ci-dessus, j'ai utilisé la permission « sudo », car mes images Docker sont stockées dans le répertoire /var/lib/docker/. Si vous les avez dans votre répertoire $HOME ou dans un endroit qui n'appartient pas à l'utilisateur « root », vous n'avez pas besoin d'utiliser « sudo ».

Vous pouvez également créer une image Docker et effectuer une analyse immédiate avec une seule commande :

$ dive build -t <some-tag>

Pour plus de détails, consultez la page GitHub du projet indiquée ci-dessous.

Ressource :

  • Plonger dans la page GitHub