Docker prune : comment nettoyer les ressources inutilisées sur Docker ?

Docker prune supprime les objets inutiles comme les conteneurs à l’arrêt, les volumes superflus, les anciens réseaux ou les images. Docker prune optimise ainsi l’utilisation du disque dur et libère de l’espace.

Docker prune : qu’est-ce que c’est ?

Docker prune, ou system prune, est une commande Docker utile pour purger les ressources superflues, et ainsi gagner de l’espace mémoire. Si les conteneurs Docker (containers), les images, les réseaux et les volumes restent inutilisés pendant une période prolongée, ils peuvent occuper une quantité considérable d’espace de stockage. La commande prune permet d’éliminer rapidement ces ressources et de maintenir ainsi un système propre et performant.

Les environnements de développement génèrent souvent des conteneurs temporaires. Cela entraîne une accumulation rapide de ressources inutiles. Docker prune nettoie non seulement les conteneurs et les images, mais aussi les réseaux et les volumes devenus inutiles. Cela simplifie considérablement la gestion des ressources Docker et réduit le risque d’un système encombré et surchargé.

Quand utiliser la commande Docker prune ?

La commande prune permet de répondre à différentes situations dans le travail quotidien avec Docker. Quatre scénarios typiques d’utilisation sont présentés ci-après.

Optimiser les processus de travail : les environnements Docker sont largement utilisés pour le développement, les tests et la production. Sans un nettoyage régulier, les ressources inutiles s’accumulent rapidement. Cette surcharge augmente les besoins en mémoire et peut affecter les performances du système. En supprimant ces ressources, Docker prune permet une gestion plus efficace des ressources, essentielle dans les environnements Cloud où les coûts dépendent du stockage et de la capacité de traitement utilisés.

Renforcer la sécurité : les ressources Docker superflues et obsolètes peuvent également présenter des risques de sécurité. En supprimant les conteneurs, les images, les réseaux et les volumes inutilisés, Docker prune réduit le risque de laisser sans protection des composants obsolètes et potentiellement non sécurisés. Un écosystème Docker épuré contribue à réduire la surface d’attaque et à améliorer la sécurité de l’ensemble de l’infrastructure informatique.

Améliorer les performances : un environnement Docker surchargé peut nuire aux performances du système en sollicitant inutilement des ressources telles que le processeur et la mémoire. Un nettoyage avec Docker prune permet de libérer de la mémoire et accroît l’efficacité de la gestion et de l’exécution des conteneurs. Cela permet de réduire considérablement les temps de chargement, d’accélérer le déploiement des applications et d’améliorer la réactivité globale du système.

Maintenance simplifiée : une exécution régulière de Docker prune simplifie considérablement la maintenance de votre environnement Docker. La suppression de ces éléments obsolètes allège le travail de gestion des développeurs. Par ailleurs, la visibilité des composants Docker actifs et pertinents est améliorée, accélérant ainsi le diagnostic et la résolution des problèmes. Cela permet non seulement de gagner du temps dans la gestion, mais aussi de permettre aux équipes de se concentrer davantage sur le développement et l’amélioration de leurs applications, plutôt que de se battre avec des ressources inutiles.

Syntaxe : comment utiliser Docker prune ?

Vous avez un environnement Docker et vous souhaitez purger des ressources pour libérer de l’espace de stockage et simplifier la gestion ? Pour ce faire, il suffit d’exécuter la commande suivante pour accéder aux services de prune :

docker system prune
bash

Les conteneurs arrêtés, les images, les réseaux et les volumes non utilisés sont identifiés par défaut et proposés au nettoyage. Docker vous demande ensuite de confirmer leur suppression. Saisissez y et appuyez sur la touche Entrée ; vous pouvez aussi utiliser directement l’option -f pour ignorer la confirmation et effectuer la suppression immédiatement :

docker system prune -f
bash

Conseil : avant d’utiliser Docker prune, il est judicieux de vérifier quelles ressources Docker sont présentes dans le système. Exécutez les commandes suivantes pour obtenir une liste de tous les conteneurs, images, réseaux et volumes :

docker ps -a
docker images
docker volume ls
docker network ls
bash

Options Docker prune

Le tableau suivant donne un aperçu des différentes options de docker system prune.

Option Description
--all, -a Supprime toutes les ressources Docker inutilisées.
--force, -f Force le nettoyage sans confirmation de l’utilisateur.
--volumes Supprime les volumes superflus.
--filter, -f Permet de filtrer les ressources à supprimer en fonction de critères.
--help Affiche une aide pour utiliser la commande.

Docker prune : tutoriel sur l’application pratique de la commande

Docker propose différentes commandes qui permettent un nettoyage ciblé de types de ressources spécifiques. Vous disposez ainsi de la souplesse nécessaire pour contrôler précisément quelles ressources doivent être supprimées.

Docker prune --filter

Vous pouvez appliquer des filtres pour sélectionner exactement les ressources à supprimer, telles que les conteneurs, images, réseaux ou volumes. Cette fonctionnalité est particulièrement utile dans les environnements de développement, où de nombreuses ressources temporaires sont souvent créées puis oubliées, risquant d’encombrer le système.

La syntaxe générale est la suivante :

docker <command> prune --filter "filter=<value>"
bash

Docker permet d’utiliser différents filtres pour cibler précisément les ressources à supprimer. Voici les principales options de filtrage :

  • until : filtre les ressources en fonction de leur ancienneté. Vous pouvez spécifier une durée avec une unité comme h (heures), m (minutes) ou s (secondes).
docker <command> prune --filter "until=<duration>"
bash

Dans cet exemple, la commande supprime tous les conteneurs arrêtés depuis plus de 24 heures :

docker container prune --filter "until=24h"
bash
  • label : filtre les ressources en fonction de leurs étiquettes (label) Docker. Cela permet de cibler uniquement les éléments ayant un label spécifique.
docker <command> prune --filter "label=<label>"
bash

Pour nettoyer tous les volumes superflus qui ont une étiquette mylabel, suivez cet exemple :

docker volume prune --filter "label=mylabel"
bash
  • dangling : identifie les ressources inutilisées ou non associées à des conteneurs actifs.
docker <command> prune --filter "dangling=true"
bash

Cet exemple montre comment supprimer toutes les images inutilisées (dangling) :

docker image prune --filter "dangling=true"
bash

Chaque commande peut être adaptée en remplaçant <command> par container, volume, network ou image, selon le type de ressource à nettoyer. Les filtres permettent ainsi un nettoyage ciblé, ce qui permet d’éviter de supprimer par erreur des éléments importants.

Outre les filtres principaux mentionnés ci-dessus, il existe des options de filtrage plus spécifiques en fonction du type de ressource :

  • before et since pour les images : filtre les images en fonction de leur date de création, avant ou à partir d’une date donnée
  • exited pour conteneur : filtre les conteneurs en fonction de leur statut Exit (par exemple exited=0 pour les conteneurs terminés/quittés avec succès)

Supprimer des ressources Docker

Étape 1 : ouvrez un terminal ou une ligne de commande sur votre système.

Étape 2 : exécutez Docker prune pour nettoyer le système :

docker {resource} prune
bash

Remplacez {resource} par le type de ressources que vous souhaitez nettoyer. Les valeurs valides sont container, image, volume et network.

Supprimer des conteneurs Docker

Docker ne libère pas automatiquement les conteneurs par défaut lorsqu’ils ont terminé leur cycle de vie. Il est donc fortement recommandé de souvent vérifier les conteneurs arrêtés et de les nettoyer si nécessaire afin de libérer les ressources bloquées pour les conteneurs en cours d’exécution. Il y a deux méthodes pour ce faire.

  • docker rm : la commande docker rm est prévue pour supprimer manuellement un ou plusieurs conteneurs Docker. Si vous savez exactement quels conteneurs doivent être supprimés, c’est la méthode la plus appropriée. Il suffit d’indiquer explicitement les identifiants ou les noms des conteneurs que vous souhaitez supprimer. Vous pouvez ainsi ne supprimer que certains conteneurs de votre environnement, sans en affecter d’autres.

Voici un exemple dans lequel nous souhaitons supprimer les conteneurs nommés container1 et container2 :

docker rm container1 container2
bash
  • docker container prune : à l’inverse, docker container prune est une commande qui sert à supprimer plusieurs conteneurs à l’arrêt, en une seule fois. Cette méthode est idéale et très efficace pour libérer de l’espace rapidement en supprimant tous les conteneurs arrêtés qui n’ont pas de processus en cours.
docker container prune
bash

Tous les conteneurs à l’arrêt sont alors répertoriés. Docker demande une confirmation avant de les supprimer. Cette commande est très pratique dans les environnements où de nombreux conteneurs temporaires sont créés et ne servent plus par la suite.

Pour la gestion et la maintenance quotidiennes de votre environnement Docker, il est conseillé d’utiliser docker container prune régulièrement pour purger automatiquement le système de conteneurs à l’arrêt. Cela permet de gagner du temps et de s’assurer qu’aucune ressource inutile n’affecte les performances du système. En revanche, docker rm est idéal pour supprimer de manière ciblée et contrôlée certains conteneurs, que ce soit pour des tests, du développement ou d’autres besoins spécifiques.

Supprimer des images Docker

Les images Docker sont les éléments constitutifs des conteneurs. Avec le temps, elles peuvent avoir de nombreux tags et versions. Lorsque vous créez ou mettez à jour de nouvelles images, il reste souvent d’anciennes images ou des images inutilisées, appelées « dangling ». Il s’agit donc d’images Docker sans tag ni lien avec des conteneurs actifs. Elles se forment généralement après des mises à jour ou des constructions d’images et ne sont plus nécessaires. Celles-ci occupent de l’espace sur votre système et peuvent en affecter les performances, en particulier si beaucoup d’images de ce type s’y trouvent.

Avec Docker prune, vous pouvez identifier et supprimer les images superflues :

docker image prune [Options]
bash

Les options possibles sont par exemple :

  • -a, --all : cette option supprime non seulement les images dangling, mais aussi les images simplement inutilisées.
docker image prune -a
bash
  • -f, --force : par défaut, Docker demande une confirmation avant de vraiment supprimer les images. Avec -f ou --force, vous pouvez sauter cette étape de confirmation et effectuer le nettoyage dans la foulée.
docker image prune -f
bash

Supprimer toutes les images Docker

Vous pouvez également supprimer toutes les images Docker inutiles de votre système encore plus rapidement. Pour utiliser efficacement Docker prune, ouvrez d’abord le terminal ou l’invite de commande et saisissez la commande suivante :

docker image prune -a --force
bash

Assurez-vous de pouvoir identifier les images à supprimer avant de procéder au nettoyage étant donné que l’option -a peut également supprimer des images inutilisées qui pourraient encore être nécessaires.

Supprimer des volumes Docker

Les volumes sont persistants et stockent des données même si le conteneur associé n’est plus en cours d’exécution. Avec le temps, ces volumes peuvent grossir et occuper inutilement des ressources.

docker volume prune
bash

Cette commande recherche tous les volumes sur lesquels il n’y a plus de conteneurs actifs et suggère une liste des volumes proposés à la suppression. Une confirmation est requise avant que le nettoyage ne s’effectue.

À l’inverse, docker volume rm est une commande qui supprime précisément que des volumes Docker particuliers. Cela est utile si vous savez exactement quel volume doit être supprimé, qu’il soit ou non utilisé par un conteneur.

Conseil

Avant de supprimer un volume avec docker volume rm, vérifiez son contenu ou sauvegardez les données importantes, car la suppression est définitive et inclut bases de données, fichiers de configuration ou autres contenus persistants.

Pour supprimer un volume Docker spécifique, utilisez la commande docker volume rm suivie du nom ou de l’identifiant du volume :

docker volume rm volume_name
bash

Une fois de plus, assurez-vous de connaître le nom ou l’identifiant exact du volume à supprimer étant donné que cette commande supprime définitivement les données et ne peut pas être annulée.

Supprimer des réseaux Docker

Dans Docker, les réseaux sont une composante fondamentale par laquelle les conteneurs communiquent entre eux, qu’ils soient localisés sur un même hôte ou répartis sur plusieurs hôtes. Les réseaux Docker subsistent même après l’arrêt ou la suppression des conteneurs. À terme, cela peut conduire à une accumulation de réseaux obsolètes qui occupent inutilement des ressources. La commande docker prune network est un moyen simple d’identifier et de supprimer les réseaux qui ne sont plus utilisés.

La commande suit la syntaxe suivante :

docker network prune [OPTIONS]
bash

Docker génère alors une liste de tous les réseaux qui ne sont plus utilisés par des conteneurs actifs ou qui ne sont plus référencés. Le système demande confirmation avant de supprimer définitivement les réseaux.

Docker prune : nos conseils pour une gestion optimale

  • Nettoyage automatisé : utilisez des scripts ou des outils automatisés pour nettoyer les images, les conteneurs et les volumes Docker devenus inutiles. Ainsi, votre environnement reste propre et les performances sont optimisées !
  • Patchs de sécurité et mises à jour : veillez à ce que les moteurs Docker, les systèmes d’exploitation hôtes et toutes les images Docker soient régulièrement vérifiés et mis à jour en termes de sécurité afin de minimiser les failles de sécurité potentielles.
  • Surveillance et journalisation : servez-vous d’outils de surveillance et de journalisation pour contrôler les performances des conteneurs, détecter les événements inattendus et encourager la « proactivité » dans la maintenance.
  • Sauvegardes externes : mettre en place des routines pour les sauvegardes externes des données importantes à partir des conteneurs Docker. Cela pourrait se faire en sauvegardant de manière régulière le contenu de la base de données ou de fichiers de configuration.
  • Contrôle manuel avant la suppression : avant de supprimer certaines ressources, vérifiez soigneusement si vous n’en avez plus besoin. Vous réduirez ainsi le risque de perte accidentelle de données et/ou l’interruption de processus en cours.
Conseil

Si vous venez de vous lancer dans Docker, nous vous recommandons vivement notre tutoriel Docker très complet.

Compute Engine
La solution IaaS idéale pour gérer vos charges de travail
  • vCPU aux coûts avantageux et cœurs dédiés performants
  • Sans engagement pour plus de flexibilité
  • Assistance par des experts 24h/24 et 7j/7 incluse
Cet article vous a-t-il été utile ?
Page top