Accéder au contenu principal

Docker Remove Image : Comment supprimer les images inutilisées et les images parasites ?

Ce guide vous montre exactement comment supprimer efficacement et en toute sécurité les images Docker pour récupérer de l'espace disque, éviter l'encombrement de la construction et prévenir les erreurs liées au stockage !
Actualisé 15 avr. 2025  · 10 min de lecture

Vous utilisez Docker et vous vous retrouvez souvent à court d'espace disque ? Vous n'êtes pas seul.

Les images Docker sont les éléments constitutifs des conteneurs Docker, mais elles peuvent rapidement s'accumuler et consommer de l'espace disque. La taille de ces images varie de quelques mégaoctets à plusieurs gigaoctets, de sorte qu'une procédure de nettoyage régulière est essentielle pour assurer des performances optimales du système.

Docker propose quelques commandes pour vous aider à supprimer les images inutiles et à récupérer de l'espace disque. En comprenant ces commandes et en sachant quand les utiliser, vous devriez pouvoir éliminer tous les avertissements relatifs à l'absence de stockage.

Dans ce tutoriel, je vous présenterai différentes méthodes pour supprimer les images Docker, je vous montrerai comment gérer les erreurs courantes au cours du processus de suppression et je partagerai les meilleures pratiques pour maintenir un environnement Docker propre.

>Complètement novice en matière de Docker ? Ce guide pratique des conteneurs vous permettra d'être opérationnel en un rien de temps.

Qu'est-ce qu'une image Docker ?

Une image Docker est un logiciel léger, autonome et exécutable qui contient tout ce qui est nécessaire à l'exécution d'une application : code, moteur d'exécution, bibliothèques, variables d'environnement et fichiers de configuration. 

Considérez-le comme un instantané ou un modèle utilisé pour créer des conteneurs.

>Docker n'est pas seulement utilisé par les ingénieurs en logiciel - Il est également apprécié par les Data Scientists!

Les images Docker sont construites en couches, chaque couche représentant un ensemble de modifications apportées au système de fichiers. Lorsque vous tirez une image de Docker Hub ou que vous en construisez une à l'aide d'un Dockerfile, vous téléchargez ou créez en fait une pile de ces couches qui fonctionnent ensemble. Ces couches sont mises en cache, ce qui rend la création et le partage d'images plus efficaces, mais signifie également qu'elles consomment de l'espace de stockage sur votre machine.

Les images deviennent particulièrement problématiques lorsque vous développez activement des applications. Vous serez souvent amené à reconstruire des images à plusieurs reprises avec des modifications mineures, à créer différentes versions pour les tests et à tirer des dépendances qui pourraient ne jamais être nettoyées automatiquement. 

En un rien de temps, vous vous retrouvez avec des dizaines, voire des centaines d'images qui consomment des gigaoctets de l'espace précieux - et limité - du disque SSD.

>Si vous vous intéressez à la science des données et à l'apprentissage automatique, vous devez connaître ces 12 images Docker.vous devez connaître ces 12 images Docker.

Pourquoi supprimer les images Docker ?

En termes simples, Les images Docker peuvent être des consommateurs d'espace notoires, et l'espace disque dont vous disposez est limité....

La suppression des images Docker inutiles a plusieurs objectifs importants :

  • Tout d'abord, il récupère de l'espace de stockage,, ce qui est particulièrement important si vous travaillez sur un ordinateur portable dont la capacité est limitée ou dans un environnement CI/CD avec des contraintes de stockage. D'une manière ou d'une autre, ces erreurs "Il n'y a plus d'espace sur l'appareil" semblent toujours surgir au pire moment.
  • Le nettoyage des images permet également de supprimer les versions obsolètes qui pourraient perturber les développeurs ou les processus de déploiement. Il n'y a rien de pire que d'utiliser accidentellement une vieille image parce que votre balise latest pointe vers quelque chose d'inattendu. 
  • En outre, une liste d'images encombrée rend plus difficile l'identification de ce dont vous avez réellement besoin. Lorsque vous lancez docker images et que vous voyez un écran rempli de dépôts, d'étiquettes et d'identifiants, trouver l'image spécifique que vous recherchez devient un processus fastidieux. Un nettoyage régulier permet à votre environnement de travail de rester gérable et à vos commandes d'être lisibles. Il s'agit d'une petite amélioration de la qualité de vie qui s'accumule au fil du temps.

Ensuite, je vous montrerai deux façons d'aborder la suppression des images Docker.

Maîtriser Docker et Kubernetes

Apprenez la puissance de Docker et Kubernetes avec un cursus interactif pour construire et déployer des applications dans des environnements modernes.
Démarrer le cursus gratuitement

Suppression des images Docker

Maintenant que vous savez ce que sont les images Docker et pourquoi il est important de les contrôler, nous allons nous plonger dans le processus de suppression proprement dit. 

Docker fournit quelques commandes pour vous aider à gérer vos images, de la liste de ce que vous avez à la suppression de ce dont vous n'avez pas besoin.

Vérification des images Docker existantes

Avant de commencer à supprimer des images, vous devez savoir ce qui occupe réellement de l'espace sur votre système. La commande docker images est la première étape de ce processus de nettoyage.

docker images

Cette commande répertorie toutes vos images Docker ainsi que des informations précieuses telles que :

  • Nom du référentiel
  • Étiquette
  • Image ID
  • Date de création 
  • Taille

Image 1 - Images Docker disponibles

Image 1 - Images Docker disponibles

L'examen de la colonne des tailles peut vous ouvrir les yeux. Comme vous pouvez le voir sur Image 1, l'image de la base de données Oracle occupe plus de 15 Go!

Si vous souhaitez trier vos images par taille afin d'identifier celles qui occupent le plus d'espace :

docker images --format "{{.Size}}\t{{.Repository}}:{{.Tag}}" | sort -h

Image 2 - Images Docker disponibles classées par taille

Image 2 - Images Docker disponibles classées par taille

Il s'agit d'un aperçu plus compact, car il n'inclut pas toutes les propriétés de l'image.

Suppression d'une image Docker spécifique

Une fois que vous avez identifié les images dont vous n'avez pas besoin, vous pouvez les supprimer une à une à l'aide de la commande docker rmi (où rmi signifie "supprimer l'image").

Vous pouvez supprimer une image soit par son identifiant, soit par sa combinaison repository:tag :

# Remove by image ID
docker rmi 4e7024df2f20

# Remove by repository:tag
docker rmi nginx:latest

Image 3 - Deux façons de supprimer des images Docker individuelles

Image 3 - Deux façons de supprimer des images Docker individuelles

Il convient également de mentionner que Docker ne vous permet pas de supprimer les images qui sont actuellement utilisées par des conteneurs. Vous obtiendrez un message d'erreur du type :

Image 4 - Tentative de suppression des images Docker en cours d'utilisation

Image 4 - Tentative de suppression des images Docker en cours d'utilisation

Si vous voyez cela, vous devez arrêter et supprimer tous les conteneurs dépendants avant de supprimer l'image, ou utiliser la commande force (dont je parlerai plus tard).

Suppression de plusieurs images Docker

Il peut être fastidieux de supprimer les images une à une, surtout lors d'un grand nettoyage. Heureusement, Docker vous permet de supprimer plusieurs images à l'aide d'une seule commande.

Vous pouvez fournir une liste d'identifiants d'images séparés par des espaces :

docker rmi postgres:latest mariadb:latest

Image 5 - Suppression de plusieurs images Docker

Image 5 - Suppression de plusieurs images Docker

Ou, pour des scénarios plus avancés, vous pouvez combiner docker images avec le filtrage et la tuyauterie. Par exemple, celle-ci supprimera toutes les images comportant la balise latest:

docker rmi $(docker images --filter=reference="*:latest" -q)

Image 6 - Suppression de toutes les images Docker avec un tag spécifique

Image 6 - Suppression de toutes les images Docker avec un tag spécifique

Enfin, toutes, sauf les images actuellement utilisées par les conteneurs en cours d'exécution.

Soyez prudent avec ces commandes de suppression en bloc,, car elles ne demandent pas de confirmation. Vous devez toujours revérifier vos critères de filtrage avant d'appuyer sur la touche Entrée.

Suppression des images pendantes et inutilisées

Lorsque vous reconstruisez une image, Docker crée de nouvelles couches pour tout ce qui a changé et réutilise les couches mises en cache pour les parties inchangées. Les couches uniques de la version précédente deviennent "pendantes" - elles existent sur le disque mais ne font partie d'aucune image nommée.

Vous pouvez identifier les images pendantes avec :

docker images -f "dangling=true"

Image 7 - Liste des images Docker en suspens

Image 7 - Liste des images Docker en suspens

Exécutez maintenant la commande prune pour les supprimer tous en même temps :

docker image prune

Image 8 - Élagage d'une image Docker

Image 8 - Élagage d'une image Docker

Cette commande vous demandera de confirmer votre choix avant de poursuivre. Si vous êtes sûr de vouloir les supprimer tous :

docker image prune -f

Pour un nettoyage plus agressif, vous pouvez supprimer les images pendantes et les images inutilisées (celles qui ne sont utilisées par aucun conteneur) :

docker image prune -a

Image 9 - Suppression de toutes les images inutilisées

Image 9 - Suppression de toutes les images inutilisées

Cette dernière commande peut libérer beaucoup d'espace, mais utilisez-la avec précaution, car elle supprimera toutes les images qui ne sont pas référencées par des conteneurs en cours d'exécution ou arrêtés..

>Qu'est-ce que la commande Docker Prune exactement ? Nous y avons consacré un article entier, truffé d'exemples.

Maintenant que vous savez comment supprimer des images Docker, examinons quelques erreurs courantes que vous pourriez rencontrer et comment les traiter.

Gestion des erreurs lors de la suppression d'images Docker

Comme pour tout ce qui concerne le développement de logiciels, vous rencontrerez parfois des erreurs lorsque vous tenterez de supprimer des images Docker. 

La plupart de ces erreurs se produisent pour de bonnes raisons - les protections de Docker sont conçues pour vous empêcher de casser accidentellement quelque chose d'important. Examinons ces erreurs courantes et la manière d'y remédier.

Erreur : L'image est utilisée par un conteneur

L'erreur la plus courante que vous rencontrerez lors de la suppression d'images Docker ressemble à ceci :

Error response from daemon: conflict: unable to delete 64ba095c0f0e (cannot be forced) - image is being used by running container 0284660ca006

Cela est dû au fait que l'architecture de Docker a une relation de dépendance stricte entre les conteneurs et les images. Un conteneur est essentiellement une instance en cours d'exécution d'une image avec sa propre couche inscriptible. 

Pourquoi Docker empêche-t-il la suppression ? C'est simple : si vous supprimez une image alors qu'un conteneur basé sur cette image est toujours en cours d'exécution, ce conteneur se bloque immédiatement. Même les conteneurs arrêtés conservent des références à leurs images parentes, car ils peuvent être redémarrés ultérieurement.

Pour supprimer une telle image, commencez par dresser la liste de tous les conteneurs (y compris les conteneurs arrêtés) qui utilisent l'image :

docker ps -a --filter ancestor=64ba095c0f0e

Image 10 - Tous les conteneurs utilisant l'image

Image 10 - Tous les conteneurs utilisant l'image

Vous pouvez alors arrêter tous les conteneurs :

docker stop 0284660ca006

Image 11 - Arrêt des conteneurs

Image 11 - Arrêt des conteneurs

Ensuite, vous pouvez retirer les conteneurs arrêtés :

docker rm 0284660ca006

Image 12 - Retrait des conteneurs

Image 12 - Retrait des conteneurs

Enfin, utilisez la commande bien connue rmi pour supprimer l'image :

docker rmi 64ba095c0f0e

Image 13 - Suppression de l'image Docker

Image 13 - Suppression de l'image Docker

Ou, si vous préférez une seule commande shell, utilisez celle-ci :

docker ps -a --filter ancestor=090040f97aa1 -q | xargs docker rm -f && docker rmi 090040f97aa1

Image 14 - Tout faire en une seule commande shell

Image 14 - Tout faire en une seule commande shell

C'est beaucoup plus facile, n'est-ce pas ?

Suppression forcée des images Docker

Si vous êtes absolument certain de vouloir supprimer une image sans tenir compte des dépendances, Docker propose l'option -f ou --force:

docker rmi -f 64ba095c0f0e

Image 15 - Suppression forcée des images Docker

Image 15 - Suppression forcée des images Docker

L'option force indique à Docker de supprimer l'image même si elle est référencée par des conteneurs ou d'autres images. 

Cependant, il ne supprimera pas les images référencées par les conteneurs en cours d'exécution, il ne supprimera pas les images référencées par les conteneurs en cours d'exécution.

La suppression forcée doit être votre dernier recours, comme lors du débogage de Docker lui-même ou lorsque vous êtes absolument certain que les dépendances peuvent être supprimées en toute sécurité. Dans les environnements de production, ce n'est presque jamais le bon choix.

N'oubliez pas que les contrôles de dépendance de Docker existent pour une raison. En travaillant avec eux plutôt que contre eux, vous obtiendrez une expérience Docker plus stable et plus prévisible.

Meilleures pratiques pour la gestion des images Docker

La gestion des images Docker n'est pas une tâche ponctuelle, c'est une responsabilité permanente. 

En prenant de bonnes habitudes et en suivant les meilleures pratiques, vous éviterez les nettoyages d'urgence lorsque votre espace disque sera soudainement réduit à zéro. Dans cette section, je vais vous présenter quelques stratégies pour vous aider à maintenir un environnement Docker propre.

>Vous cherchez un guide complet pour apprendre Docker? Notre guide pour les professionnels des données est un bon point de départ.

Nettoyage régulier

Tout comme vous ne laisseriez pas la vaisselle s'accumuler dans votre évier pendant des semaines, vous ne devriez pas laisser des images Docker inutilisées s'accumuler indéfiniment sur votre système.

Un programme d'entretien régulier est le moyen le plus simple d'éviter le gonflement des images. En fonction de votre utilisation active de Docker, cela peut être hebdomadaire, mensuel ou trimestriel. 

Au cours de ces séances de nettoyage, vous devez

  1. Examinez les images avec docker images et identifiez les candidats au retrait.
  2. Vérifiez les images que vous ne reconnaissez pas ou que vous n'avez pas utilisées récemment.
  3. Recherchez les versions dupliquées d'une même application.
  4. Supprimez les images inutiles à l'aide des commandes décrites précédemment.

De nombreuses équipes de développement intègrent également le nettoyage des images dans leurs pipelines CI/CD. Par exemple, vous pouvez configurer les actions Jenkins ou GitHub pour qu'ellesnettoient automatiquement les images de compilation dépassant un certain âge.

Cette commande n'affichera que les images datant de plus de 30 jours :

docker images --format "{{.ID}}\t{{.CreatedAt}}" | awk '$2 < "'$(date -d '30 days ago' +'%Y-%m-%d')'"' | cut -f1

Utiliser l'élagage des images Docker

Docker fournit des commandes d'élagage intégrées qui peuvent automatiser une grande partie du travail de nettoyage manuel.

La commande docker system prune supprime en une seule fois tous les conteneurs arrêtés, les images pendantes et les réseaux inutilisés :

docker system prune

Pour un nettoyage plus agressif qui supprime également les images inutilisées :

docker system prune -a

Vous pouvez même récupérer de l'espace dans les caches de construction :

docker builder prune

Ces commandes sont parfaites pour l'écriture de scripts sur. Voici un exemple simple de script de nettoyage que vous pourriez exécuter périodiquement :

#!/bin/bash
# Stop all containers
docker stop $(docker ps -q)

# Remove all stopped containers
docker container prune -f

# Remove all unused images
docker image prune -a -f

# Show remaining disk usage
docker system df

Image 16 - Script automatisé pour le nettoyage de Docker

Image 16 - Script automatisé pour le nettoyage de Docker

N'oubliez pas d'utiliser l'option -f avec précaution dans les scripts automatisés, car elle permet de contourner les messages de confirmation.

Organiser les versions des images

Une bonne stratégie de marquage vous aidera à minimiser l'accumulation d'images Docker inutiles.

Au lieu de toujours utiliser la balise latest (qui peut devenir ambiguë au fil du temps), envisagez les approches suivantes :

  • Utilisez le versionnement sémantique pour vos images :
myapp:1.0.0
myapp:1.0.1
myapp:1.1.0
  • Inclure les informations de construction dans les tags :
myapp:build-2025-04-06
myapp:commit-a7f3d9e
  • Ajouter des qualificatifs d'environnement ou d'objectif:
myapp:1.0.0-dev
myapp:1.0.0-test
myapp:1.0.0-prod

Pour les équipes plus importantes, envisagez de mettre en œuvre une politique de registre d'images Docker qui met automatiquement au rebut les anciennes images après une certaine période. Docker Hub et les registres privés tels que Harbor offrent des fonctionnalités permettant de gérer les cycles de vie des images.

En combinant ces bonnes pratiques (nettoyage régulier, élagage automatisé et marquage organisé), vous conserverez un environnement Docker beaucoup plus sain et éviterez les redoutables erreurs "no space left on device" (il ne reste plus d'espace sur le périphérique).

Résumé de la suppression des images Docker

Si vous êtes un développeur travaillant avec des conteneurs, la gestion correcte des images Docker est une compétence indispensable.

N'oubliez pas que la puissance de Docker provient de sa capacité à isoler et à empaqueter efficacement les applications, mais cet avantage peut rapidement devenir un inconvénient en l'absence d'une maintenance appropriée.

Vous avez appris pourquoi les images Docker peuvent devenir problématiques au fil du temps, en consommant un espace disque précieux et en créant de l'encombrement dans votre environnement de développement. Vous avez vu différentes commandes pour vérifier et supprimer des images, depuis le ciblage d'images spécifiques avec docker rmi jusqu'au nettoyage en masse avec des commandes d'élagage. Vous avez également vu les erreurs les plus courantes au cours du processus d'enlèvement et appris à les surmonter.

Si vous souhaitez en savoir plus sur Docker et la conteneurisation, ces cours devraient être votre prochaine étape :

Maîtriser Docker et Kubernetes

Apprenez la puissance de Docker et Kubernetes avec un cursus interactif pour construire et déployer des applications dans des environnements modernes.

FAQ

Puis-je récupérer une image Docker après l'avoir supprimée ?

Non, une fois que vous avez supprimé une image Docker avec docker rmi, elle ne peut pas être récupérée à moins que vous n'ayez une sauvegarde ou que vous puissiez la récupérer à partir d'un registre. Assurez-vous toujours que vous supprimez les images correctes, en particulier dans les environnements de production. Pour les images que vous avez construites localement, vous devrez peut-être les reconstruire à partir du fichier Docker.

Qu'est-ce qu'une image Docker pendante et comment la supprimer ?

Les images parasites sont des calques qui n'appartiennent à aucune image balisée. Elles sont souvent créées lorsque vous reconstruisez des images plusieurs fois. Identifiez-les avec docker images -f "dangling=true" et supprimez-les d'un seul coup avec docker image prune.

Comment libérer rapidement de l'espace dans Docker ?

Le moyen le plus rapide de récupérer de l'espace est d'utiliser docker system prune -a, qui supprime tous les conteneurs arrêtés, les réseaux inutilisés, les images pendantes et les images inutilisées. Attention, cette opération supprime toutes les images qui ne sont pas utilisées par un conteneur.

À quelle fréquence dois-je nettoyer mes images Docker ?

La fréquence dépend de votre utilisation active de Docker. Pour les environnements de développement avec des constructions d'images fréquentes, des nettoyages hebdomadaires sont recommandés. Pour les systèmes moins actifs, une maintenance mensuelle ou trimestrielle devrait suffire. Envisagez de mettre en place des scripts de nettoyage automatisés pour assurer la cohérence.

Quelle est la différence entre la suppression et l'élagage des images Docker ?

La suppression vise des images spécifiques que vous choisissez, tandis que l'élagage nettoie automatiquement toutes les images inutilisées ou pendantes sur la base de certains critères.


Dario Radečić's photo
Author
Dario Radečić
LinkedIn
Scientifique de données senior basé en Croatie. Rédacteur technique de premier plan avec plus de 700 articles publiés, générant plus de 10 millions de vues. Auteur du livre Machine Learning Automation with TPOT.
Sujets

Apprenez-en plus sur Docker avec ces cours !

Cursus

Containerization and Virtualization with Docker and Kubernetes

0 min
Learn the power of Docker and Kubernetes, this interactive track will allow you to build and deploy applications in modern environments.
Afficher les détailsRight Arrow
Commencer le cours
Voir plusRight Arrow