« Dive », un outil d’exploration du contenu des images et couches Docker
(github.com/wagoodman)Outil d’exploration d’images Docker dive
- Analyse d’images Docker : il est possible d’analyser des images Docker avec la commande
diveet un tag, un ID ou un digest d’image. - Utilisation directe comme commande Docker : il est possible de configurer un
aliaspour utiliserdivedirectement comme une commande Docker. - Build sur Macbook : sur un Macbook ne prenant en charge que le moteur de conteneurs Docker, il est possible d’utiliser
divepour construire et analyser des images. - Intégration au pipeline CI : en définissant la variable d’environnement
CI=true, il est possible d’analyser des images sans UI et de minimiser l’espace gaspillé.
Fonctionnalités de base
- Affichage du contenu des images Docker par couche : le contenu de la couche sélectionnée et le contenu combiné des couches précédentes peuvent être consultés à droite.
- Affichage des changements dans chaque couche : l’arborescence de fichiers indique les fichiers modifiés, mis à jour, ajoutés ou supprimés.
- Estimation de l’« efficacité de l’image » : estime la quantité d’espace gaspillé contenue dans l’image et fournit un score d’efficacité ainsi que l’espace disque gaspillé par les fichiers.
- Cycle rapide de build/analyse : la commande
dive build -t some-tag .permet de construire une image Docker puis de l’analyser immédiatement. - Prise en charge de diverses sources d’images et de moteurs de conteneurs : l’option
--sourcepermet de choisir d’où récupérer l’image de conteneur.
Méthodes d’installation
- Ubuntu/Debian : installation de
diveaveccurletapt. - RHEL/Centos : installation de
diveaveccurletrpm. - Arch Linux : installation via
pacman. - Mac : utilisation de Homebrew ou MacPorts, ou téléchargement d’un build Darwin depuis la page des releases.
- Windows : téléchargement de la dernière release.
- Go tools : nécessite Go 1.10 ou supérieur, installation avec
go get. - Nix/NixOS : utilisation de
nix-envpour l’installation. - Docker : récupération de l’image avec
docker pull, puis exécution en incluant le fichier socket Docker.
Intégration CI
- Définir la variable d’environnement
CI=true: analyse d’images Docker sans UI et indication de réussite/échec via le code de retour. - Définir des règles via le fichier
.dive-ci: permet de fixer des critères de réussite/échec selon l’efficacité, la quantité d’espace gaspillé et son ratio.
Raccourcis clavier
- Divers raccourcis clavier permettent de manipuler les vues des couches et de l’arborescence de fichiers dans l’UI.
Configuration de l’UI
- Il est possible de personnaliser diverses options via un fichier de configuration afin de modifier le comportement de
dive.
Avis de GN⁺
- Importance :
diveest un outil très utile pour optimiser la taille des images Docker et réduire le gaspillage. Cela peut contribuer à diminuer les coûts d’infrastructure cloud et à améliorer la gestion efficace des ressources. - Intérêt : la possibilité d’analyser en détail chaque couche d’une image Docker et de visualiser les changements est une fonctionnalité particulièrement intéressante pour les développeurs et les administrateurs système.
- Utilité : l’intégration de
divedans un pipeline CI/CD permet d’améliorer en continu la qualité et l’efficacité grâce à une analyse automatisée des images.
1 commentaires
Avis Hacker News
Crane et la bibliothèque go-containerregistry
L’utilité de Dive
Une caractéristique cachée de Dive
Question sur l’usage de GoLang
Le côté pratique de Dive
L’outil container-diff de Google
D’autres excellents outils TUI pour le terminal
Pourquoi Docker utilise des archives tar
L’effet remarquable de Dive