Skip to content
Avatar de Thomas Bnt Thomas Bnt @thomasbnt
retour

Nettoyer les images Docker qui prennent de la place

Publié le
2 min de lecture · 421 mots

Tu déploies, tu rebuildes, tu testes des choses. Et un jour, tu regardes ton serveur et t’as plus que 2 Go de libre. Félicitations, Docker a tout mangé.

Ton disque dur Docker te déteste. Et c’est de ta faute.

C’est quoi le problème exactement ?

Docker accumule des images au fil du temps. À chaque docker build, si quelque chose change, il crée de nouvelles couches et garde les anciennes. Ces vieilles couches sans tag, sans nom, sans utilité, on les appelle des images dangling.

Elles ne servent à rien. Elles prennent de la place. Et Docker ne les supprime pas tout seul.

Voir où t’en es

Avant de supprimer quoi que ce soit, une seule chose à faire :

docker system df

Ça t’affiche en quelques lignes combien d’espace est utilisé, et surtout combien est récupérable. C’est le point de départ.

Tu veux voir les images précisément ?

docker images --format "table {{.Repository}}\t{{.Tag}}\t{{.ID}}\t{{.Size}}"

Supprimer les images dangling

Les images dangling, ce sont les couches intermédiaires qui traînent. Elles n’ont ni tag ni nom. Pour les supprimer :

docker image prune

Docker te demande confirmation, t’affiche ce qu’il va supprimer, tu valides. Propre, rapide, sans risque.

Aller plus loin

Si t’as des images entières qui ne sont plus utilisées par aucun conteneur (même arrêté), tu peux les virer aussi :

docker image prune -a

Le -a change tout : là, il ne cible plus juste les dangling, mais toutes les images non référencées. C’est ce que tu veux dans la majorité des cas sur un serveur de prod ou de staging.

Tu peux filtrer par âge si tu veux garder les images récentes :

docker image prune -a --filter "until=720h"

Ça supprime uniquement ce qui a plus de 30 jours. Pratique si t’as des déploiements réguliers.

Tout remettre à zéro

Si tu veux tout remettre à zéro : images, conteneurs arrêtés, volumes orphelins, réseaux inutilisés :

docker system prune -a --volumes

Je le déconseille sur un serveur en prod sans vérifier avant ce qui tourne. Mais sur une machine de dev ou un VPS que tu rebuildes régulièrement, c’est parfait.

Automatiser tout ça

Plutôt que d’y penser manuellement, tu peux ajouter une cron job hebdomadaire :

# crontab -e
0 3 * * 0 docker image prune -a -f >> /var/log/docker-prune.log 2>&1

Tous les dimanches à 3h du matin, ça nettoie sans te demander confirmation (-f), et ça log le résultat.

Conclusion

CommandeCe que ça fait
docker system dfVoir l’espace utilisé
docker image pruneSupprimer les dangling
docker image prune -aSupprimer tout ce qui n’est plus utilisé
docker image prune -a --filter "until=720h"Idem, mais seulement les vieilles images
docker system prune -a --volumesTout remettre à zéro

Commence par docker system df. Dans 90% des cas, un docker image prune -a suffit à récupérer plusieurs gigaoctets sans rien casser.

Partager sur

Article Suivant
Téléphone volé, votre vrai cauchemar commence après