Nettoyer Docker

Docker à la fâcheuse habitude de laisser traîner plein de choses sur votre système. Fonctionnant par layers, après moults commandes build passées, beaucoup de ces layers ne sont plus utiles.

Aussi, quand vous jouez avec les volumes, quand vous supprimez un container qui avait des volumes, Docker ne supprime pas le volume associé à moins que vous précisiez -v lors de votre docker rm.

Donc, quelques commande de cleans bien utiles :

Images

  • Tuer tous les conteneurs qui tournent :
docker kill $(docker ps -q)  
  • Effacer tous les conteneurs stoppés :
docker rm $(docker ps -a -q)  
  • Effacer toutes les images "dangling" (efface les layers qui ne mènent à aucune image définitive, safe)
docker rmi $(docker images -q -f dangling=true)  
  • Effacer toutes les images (unsafe si vous avez build vos propres images)
docker rmi $(docker images -q)  

Volumes

Depuis la version 1.9, Docker dispose d'une commande built-in pour le nettoyage des volumes :

  • Effacer les volumes liés à aucun container
docker volume rm $(docker volume ls -qf dangling=true)  

Personnellement, j'ai gagné 30 Go rien qu'en supprimant les images dangling sur ma vm de dev.

Sources : ici et .

Damien Gustave

Read more posts by this author.