Introduction
Docker facilite l’emballage de vos applications et services dans des conteneurs afin que vous puissiez les exécuter n’importe où. Cependant, en travaillant avec Docker, il est également facile d’accumuler un nombre excessif d’images, de conteneurs et de volumes de données inutilisés qui encombrent la sortie et consomment de l’espace disque.
Docker vous fournit tous les outils nécessaires pour nettoyer votre système depuis la ligne de commande. Ce guide de style feuille de triche fournit une référence rapide aux commandes utiles pour libérer de l’espace disque et maintenir votre système organisé en supprimant les images, conteneurs et volumes Docker inutilisés.
Comment Utiliser ce Guide :
- Ce guide est au format feuille de triche avec des extraits de ligne de commande autonomes.
- Accédez à la section pertinente pour la tâche que vous essayez d’accomplir.
Note : La syntaxe de substitution de commande, commande $(commande)
, utilisée dans les commandes est disponible dans de nombreux shells populaires, tels que bash, zsh, et Windows Powershell.
Si vous souhaitez une manière en un clic de déployer une application Docker sur un serveur en direct, jetez un œil à DigitalOcean App Platform.
Purger toutes les images inutilisées ou flottantes, les conteneurs, les volumes et les réseaux
Docker fournit un seul commande qui nettoiera tous les ressources — images, conteneurs, volumes et réseaux — qui sont flottantes (non tagué ou associé à un conteneur) :
Pour en plus supprimer tout conteneurs arrêté et tout images inutilisées (pas seulement images flottantes), ajoutez le drapeau -a
à la commande :
Supprimer les images Docker
Supprimer une ou plusieurs images spécifiques
Utilisez la commande docker images
avec le drapeau -a
pour localiser l’ID des images que vous souhaitez supprimer. Cela vous montrera chaque image, y compris les couches d’images intermédiaires. Une fois que vous avez localisé les images que vous souhaitez supprimer, vous pouvez passer leur ID ou leur tag à docker rmi
:
Liste:
Supprimer:
Remarque: Le drapeau -a
ou --all
dans la commande docker images
affiche toutes les images Docker, y compris les couches intermédiaires qui ne sont référencées par aucun tag. Par défaut, docker images
n’affiche que les images ayant au moins un tag. Cependant, il peut y avoir des images sans aucun tag qui occupent encore l’espace disque sur le système. Le drapeau -a
peut être utile pour identifier les images qui peuvent être nettoyées pour économiser l’espace disque. Lorsqu’il est utilisé avec la commande docker rmi
, le drapeau -f
ou --force
peut également être utilisé pour supprimer des images sans tag.
Supprimer les images Docker flottantes
Les images Docker se composent de plusieurs couches. Les images flottantes sont des couches qui n’ont aucun lien avec des images étiquetées. Elles ne servent plus à rien et consomment l’espace disque. Elles peuvent être localisées en ajoutant le drapeau de filtre -f
avec une valeur de dangling=true
à la commande docker images
. Lorsque vous êtes sûr de vouloir les supprimer, vous pouvez utiliser la commande docker image prune
:
Note: Si vous construisez une image sans la baliser, l’image apparaîtra dans la liste des images en suspens car elle n’est pas associée à une image balisée. Vous pouvez éviter cette situation en fournissant une balise lors de la construction, et vous pouvez baliser rétroactivement une image avec la commande docker tag
.
Liste :
Supprimer :
Supprimer des images selon un motif
Vous pouvez trouver toutes les images correspondant à un motif en utilisant une combinaison de docker images
et de grep
. Une fois satisfait, vous pouvez les supprimer en utilisant awk
pour passer les identifiants à docker rmi
. Notez que ces utilitaires ne sont pas fournis par Docker et ne sont pas nécessairement disponibles sur tous les systèmes :
Liste :
Supprimer :
Supprimer toutes les images
Toutes les images Docker sur un système peuvent être répertoriées en ajoutant -a
à la commande docker images
. Une fois sûr de vouloir les supprimer toutes, vous pouvez ajouter le drapeau -q
pour transmettre l’ID de l’image à docker rmi
:
Liste:
Supprimer:
Suppression des conteneurs
Supprimer un ou plusieurs conteneurs spécifiques
Utilisez la commande docker ps
avec le drapeau -a
pour localiser le nom ou l’ID des conteneurs que vous souhaitez supprimer:
Liste:
Supprimer:
Supprimer un conteneur à la sortie
Si vous savez que vous ne voulez pas conserver un conteneur une fois que vous avez terminé, vous pouvez exécuter docker run --rm
pour le supprimer automatiquement lorsqu’il se termine :
Exécuter et Supprimer :
Supprimer tous les conteneurs arrêtés
Vous pouvez localiser les conteneurs en utilisant docker ps -a
et les filtrer par leur statut : created
, restarting
, running
, paused
, ou exited
. Pour passer en revue la liste des conteneurs exited
, utilisez le drapeau -f
pour filtrer en fonction du statut. Lorsque vous avez vérifié que vous voulez supprimer ces conteneurs, utilisez -q
pour passer les identifiants à la commande docker rm
:
Liste :
Supprimer :
Supprimer les conteneurs en utilisant plus d’un filtre
Les filtres Docker peuvent être combinés en répétant le drapeau de filtre avec une valeur supplémentaire. Cela donne une liste de conteneurs répondant à l’une ou l’autre condition. Par exemple, si vous voulez supprimer tous les conteneurs marqués soit comme créé
(un état qui peut survenir lorsque vous exécutez un conteneur avec une commande invalide) ou exited
, vous pouvez utiliser deux filtres :
Liste :
Supprimer :
Supprimer les conteneurs selon un motif
Vous pouvez trouver tous les conteneurs correspondant à un motif en utilisant une combinaison de docker ps
et grep
. Lorsque vous êtes satisfait de la liste que vous souhaitez supprimer, vous pouvez utiliser awk
et xargs
pour fournir l’ID à docker rm
. Notez que ces utilitaires ne sont pas fournis par Docker et ne sont pas nécessairement disponibles sur tous les systèmes :
Liste :
Supprimer :
Arrêtez et supprimez tous les conteneurs
Vous pouvez consulter les conteneurs sur votre système avec la commande docker ps
. Ajouter le drapeau -a
affichera tous les conteneurs. Lorsque vous êtes sûr de vouloir les supprimer, vous pouvez ajouter le drapeau -q
pour fournir les identifiants aux commandes docker stop
et docker rm
:
Liste :
Suppression :
Suppression des volumes
Supprimez un ou plusieurs volumes spécifiques
Utilisez la commande docker volume ls
pour localiser le nom ou les noms des volumes que vous souhaitez supprimer. Ensuite, vous pouvez supprimer un ou plusieurs volumes avec la commande docker volume rm
:
Liste :
Suppression :
Supprimer les volumes en suspens
Étant donné que le but des volumes est d’exister indépendamment des conteneurs, lorsqu’un conteneur est supprimé, un volume n’est pas automatiquement supprimé en même temps. Lorsqu’un volume existe et n’est plus connecté à aucun conteneur, on l’appelle un volume en suspens. Pour les localiser et confirmer que vous souhaitez les supprimer, vous pouvez utiliser la commande docker volume ls
avec un filtre pour limiter les résultats aux volumes en suspens. Lorsque vous êtes satisfait de la liste, vous pouvez tous les supprimer avec docker volume prune
:
Liste :
Supprimer :
Supprimer un conteneur et son volume
Si vous créez un volume non nommé, il peut être supprimé en même temps que le conteneur avec le drapeau -v
. Notez que cela ne fonctionne qu’avec les volumes non nommés. Lorsque le conteneur est supprimé avec succès, son ID est affiché. Notez qu’aucune référence n’est faite à la suppression du volume. S’il n’est pas nommé, il est silencieusement supprimé du système. S’il est nommé, il reste silencieusement présent.
Supprimer :
Conclusion
Ce guide couvre certaines des commandes courantes utilisées pour supprimer des images, des conteneurs et des volumes avec Docker. Il existe de nombreuses autres combinaisons et indicateurs qui peuvent être utilisés avec chacune d’elles. Pour un guide complet sur ce qui est disponible, consultez la documentation Docker pour docker system prune
, docker rmi
, docker rm
et docker volume rm
. S’il y a des tâches de nettoyage courantes que vous aimeriez voir dans le guide, veuillez demander ou faire des suggestions dans les commentaires.
Pour un examen détaillé des différents composants d’un conteneur Docker, consultez L’écosystème Docker : Une introduction aux composants courants.
Source:
https://www.digitalocean.com/community/tutorials/how-to-remove-docker-images-containers-and-volumes