Nettoyer les volumes Docker orphelins

Comme je l’ai indiqué dans mes articles précédents sur les volumes, Docker ne supprime jamais de lui-même un volume lors de la disparition d’un conteneur. Ce qui signifie que vous avez probablement plein de volumes orphelins 🙂

Supprimer un volume en supprimant un conteneur

Lors de la suppression d’un conteneur, vous avez la possibilité de suprrimer explicitement le volume attaché en même temps grâce à l’option -v de la commande docker rm.

Par exemple cette commande supprime le volume 8b5 et le volume attaché :

# docker rm -v 8b5
8b5

Supprimer les conteneurs orphelins

Les conteneurs orphelins peuvent être listés avec la commande docker volume ls en spécifiant l’option -f dangling=true.

Exemple :

# docker volume ls -f dangling=true
DRIVER              VOLUME NAME
local               7a580f460fb61a5ed77b70c2e05320315de22ad9a684692854418bc77eeffa35
local               424713fe7be69256b5d876f01307db33ff969244f2618005823ad0dd5c4b4834
local               0afb23ec7f105227efd8702671133e0b4fa52d3d63e57419f76ba470124b1340
local               5449a081d53f1909e11aa8c7fe9f69626e69c34f843ae252036e65891f61f033
local               223aa9f8a5b6285912e0d3834e928b12f2304f3c63ef6624dbaad66b915cbd4f

Pour supprimer tous ces volumes en une fois, j’utilise une petite combinaison de commandes Linux :

# docker volume ls -qf dangling=true | xargs -r docker volume rm

L’option -q que j’ai ajouté correspond à l’option quiet qui n’affiche que les identifiants de volumes, sans en-tête ou colonne DRIVER

Si je liste de nouveau les volumes orphelins, je n’ai plus rien :

# docker volume ls -f dangling=true
DRIVER              VOLUME NAME

Et voilà, à vous de voir ensuite si vous voulez faire ce nettoyage manuellement régulièrement ou positionner cette routine dans un fichier cron.


Posted

in

,

by

Tags:

Comments

One response to “Nettoyer les volumes Docker orphelins”

  1. Cédric Avatar

    Merci, c’est ce qui manquait à mon script de nettoyage de mes postes de travail pour récupérer tout l’espace inutilement occupé (après les containers stoppés et les images inutiles).

Leave a Reply

Your email address will not be published. Required fields are marked *