Optimize Docker Images Slimtoolkit

Table des matières

Avant, je passais beaucoup de temps à dépanner de grandes images Docker, à attendre la fin des builds et à m’inquiéter du gaspillage de stockage. J’avais l’impression que peu importe le soin avec lequel je structurais mes fichiers Docker, les images finissaient toujours par être plus lourdes que nécessaire. Tout a changé lorsque j’ai découvert SlimToolkit (anciennement DockerSlim).

Cet outil analyse une image Docker, identifie les fichiers et dépendances réellement nécessaires au moment de l’exécution et supprime tout le reste. Suivez ce guide pour voir comment fonctionne SlimToolkit et les étapes que j’ai utilisées pour réduire mes images Docker sans rien casser.

SlimToolkit simplifie l’optimisation des images Docker

Boîte à outils Slim est un outil open source qui réduit la taille de l’image Docker sans nécessiter de modifications du code de l’application ou des fichiers Docker. Cela supprime le besoin d’étapes d’optimisation manuelles, telles que le nettoyage des packages ou la réécriture des étapes de construction. Au lieu de cela, SlimToolkit gère automatiquement l’optimisation des images et simplifie le processus.

Lorsque vous exécutez SlimToolkit sur une image Docker, il effectue une analyse dynamique en observant le fonctionnement du conteneur. Il suit exactement les fichiers, bibliothèques et dépendances touchés par l’application pendant l’exécution. Sur la base de ces données, il crée une nouvelle image optimisée contenant uniquement les composants requis. Il conserve l’image originale inchangée, ce qui rend le processus sûr et facile à inverser.

SlimToolkit fonctionne avec les images existantes et prend en charge Node.js, Python, Java et Go, sans nécessiter de connaissances avancées sur Docker ou Linux. Il s’intègre parfaitement à la plupart des flux de travail, améliorant la sécurité des conteneurs en supprimant les outils et shells inutilisés que les attaquants pourraient exploiter. Les images plus petites se téléchargent plus rapidement, démarrent plus rapidement et consomment moins de ressources, ce qui constitue un avantage considérable pour les pipelines CI/CD.

Configuration de SlimToolkit

L’utilisation de SlimToolkit via Docker est la méthode la plus simple car elle ne nécessite aucune installation locale. Tant que Docker est installé et exécuté, vous pouvez commencer à utiliser SlimToolkit immédiatement.

Tout d’abord, téléchargez l’image officielle de SlimToolkit à l’aide de la commande docker suivante :

docker pull dslim/slim

L’exécution de SlimToolkit nécessite le montage du socket Docker (/var/run/docker.sock). Cela donne au conteneur l’autorisation de communiquer avec votre moteur Docker local pour analyser et optimiser les images. Assurez-vous d’utiliser uniquement des images officielles fiables.

Réduire la taille de l’image Docker avec SlimToolkit

Pour démontrer le processus d’optimisation, nous allons affiner une image Nginx standard. Tout d’abord, extrayez la dernière image officielle de Nginx :

docker pull nginx:latest
Extraire l'image Nginx

Pour les applications standards comme Nginx, vous pouvez exécuter directement la commande build. SlimToolkit vérifie quels fichiers le conteneur utilise réellement et supprime ceux qui sont inutiles.

docker run --rm -v /var/run/docker.sock:/var/run/docker.sock dslim/slim build --target nginx:latest --tag nginx-slim:latest
Optimiser l'image Docker

Certains langages (comme Python ou Ruby) peuvent avoir des dépendances qui ne sont pas déclenchées immédiatement lors d’une sonde standard. Dans ces cas, créez un fichier « ignore.txt » pour indiquer à SlimToolkit quels dossiers conserver, comme « /usr/local/lib/python3.11 ». Cela empêche SlimToolkit de supprimer les dépendances d’exécution essentielles.

Vous pouvez exécuter la commande avec un montage de volume pour inclure vos règles de préservation :

-v "$(pwd)":/target --preserve-path-file /target/ignore.txt

Comparez la différence de taille : original vs. Image affinée

Une fois le processus terminé, SlimToolkit enregistre l’image optimisée localement. Vous pouvez comparer la différence de taille entre la version originale et la version allégée avec cette commande :

docker images

Vous constaterez probablement une réduction spectaculaire.

Image originale ou optimisée

Enfin, testez votre nouvelle image optimisée pour vous assurer qu’elle fonctionne comme prévu :

docker run -it -p 8080:80 nginx-slim:latest
Testez votre nouvelle image optimisée

Ouvrez votre navigateur et accédez à http://localhost:8080. Vous devriez voir la page d’accueil par défaut de Nginx, mais fonctionnant à partir d’une empreinte de conteneur nettement plus petite.

Exécutez Nginx

Autres commandes SlimToolkit utiles

SlimToolkit fournit quelques commandes clés pour vous aider à analyser et optimiser les images Docker. Voici une liste des plus utiles :

CommandeDescription
construction minceOptimise une image Docker en conservant uniquement les fichiers et dépendances nécessaires, réduisant ainsi la taille de l’image.
radiographie minceAnalyse une image Docker et affiche ce qu’elle contient, y compris les fichiers, les couches et les dépendances.
peluche minceVérifie les erreurs dans les Dockerfiles pour éviter les problèmes de construction.
débogage mincePermet de déboguer un conteneur en cours d’exécution créé à partir d’une image Docker allégée.
profil minceCollecte des informations sur une image Docker et génère un rapport JSON pour l’analyse de la taille et des performances.
fusion minceFusionne deux images Docker en une seule image.

Vous pouvez également vérifier toutes les commandes SlimToolkit disponibles et leur utilisation à l’aide de la commande suivante.

docker run --rm -v /var/run/docker.sock:/var/run/docker.sock dslim/slim slim help
Obtenez toutes les commandes disponibles

Limites à garder à l’esprit

Bien que SlimToolkit aide à réduire la taille des images Docker, vous devez prendre en compte quelques inconvénients :

  • L’amincissement des grandes images peut prendre plus de temps, alors planifiez en conséquence.
  • Étant donné que l’outil utilise l’analyse dynamique, si un chemin de code spécifique n’est pas exécuté pendant le processus de génération, SlimToolkit peut penser qu’une dépendance est inutilisée et la supprimer. Testez toujours minutieusement vos images affinées.
  • Il supprime souvent des outils comme bash ou curl pour économiser de l’espace. Si vous en avez besoin pour le dépannage dans un conteneur de production, vous devez explicitement indiquer à SlimToolkit de les conserver.

Conclusion

L’ajout de SlimToolkit à votre flux de travail accélère les déploiements, garantit des performances constantes et minimise la surcharge des conteneurs. Il vous aide à créer des images Docker plus propres et plus professionnelles tout en conservant vos versions d’origine inchangées. De plus, l’adoption des meilleures pratiques de nettoyage Docker permet de maintenir des conteneurs efficaces et bien organisés au fil du temps.

Boîte à outils Slim

Prix ​​: Gratuit

Partager :
Facebook
Twitter
LinkedIn

Gentil Geek

Passionné d'informatique depuis ma plus tendre enfance aujourd'hui j'en ai fait mon métier. A vos côtés pour simplifier votre utilisation de l'informatique et vous permettre de gagner en compétences.

Poster le commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *