Après quelques semaines de développement avec Docker, l’espace disque disponible peut fondre rapidement sans qu’on comprenne pourquoi. La cause est presque toujours la même : des conteneurs arrêtés, des images intermédiaires et des volumes orphelins qui s’accumulent silencieusement.
Par exemple, chaque docker build laisse derrière lui d’anciennes couches d’images qui ne servent plus à rien mais continuent d’occuper de l’espace.
Voir ce qui prend de la place
Avant de nettoyer, il est utile de savoir ce que Docker utilise réellement :
docker system df
Tu obtiendras une sortie similaire à :
TYPE TOTAL ACTIVE SIZE RECLAIMABLE
Images 24 6 8.2GB 6.1GB (74%)
Containers 12 2 450MB 420MB (93%)
Local Volumes 8 3 1.3GB 900MB (69%)
La colonne RECLAIMABLE indique l’espace qui peut être libéré.
Supprimer les conteneurs arrêtés
Pour lister les conteneurs arrêtés :
docker ps -a --filter "status=exited"
Pour les supprimer tous en une fois :
docker container prune
Docker demande une confirmation avant de procéder.
Supprimer les images inutilisées
Les images qui ne sont liées à aucun conteneur (actif ou arrêté) peuvent être supprimées :
docker image prune
Par défaut, seules les images “dangling” (sans tag, souvent issues de builds intermédiaires) sont concernées.
Pour supprimer aussi les images non utilisées par un conteneur en cours d’exécution, même si elles ont un tag :
docker image prune -a
Supprimer les volumes orphelins
Les volumes créés par des conteneurs supprimés restent souvent sur le disque :
docker volume prune
docker volume prune doit être utilisé avec prudence, car il supprime définitivement les données qu’ils contiennent, y compris celles de bases de données locales non sauvegardées.
Tout nettoyer en une seule commande
Pour supprimer en une fois les conteneurs arrêtés, les réseaux non utilisés, les images sans lien et le cache de build :
docker system prune
Pour inclure également les images non taguées mais utilisées, ainsi que les volumes :
docker system prune -a --volumes
Cette dernière commande est la plus agressive : elle libère un maximum d’espace, mais supprime aussi tout ce qui pourrait encore servir à un prochain build (cache inclus).
Solution rapide pour un nettoyage régulier
Pour éviter d’accumuler à nouveau des ressources inutiles, un simple alias peut automatiser un nettoyage léger et sûr :
alias docker-clean="docker container prune -f && docker image prune -f"
Réserve docker system prune -a --volumes aux moments où tu veux vraiment repartir sur une base propre, par exemple avant de libérer de l’espace disque en urgence.

