aide-memoire-docker
Conteneurs et les volumes de Docker
Introduction
Docker vous permet d’empaqueter facilement vos applications et services dans des conteneurs afin de pouvoir les utiliser partout. Cependant, lorsque vous travaillez avec Docker, il est également facile d’accumuler un nombre excessif d’images, de conteneurs et de volumes de données inutilisés qui alourdissent la sortie et consomment de l’espace disque.
Élimination de toutes les images, conteneurs, volumes et réseaux inutilisés ou en suspens
Docker fournit une commande unique qui nettoiera toutes les ressources - images, conteneurs, volumes et réseaux - qui sont en suspens (non associées à un conteneur) :
docker system prune
Pour supprimer en plus tous les conteneurs arrêtés et toutes les images non utilisées (pas seulement les images en suspens), ajoutez l’indicateur -a à la commande :
docker system prune -a
Suppression des images de Docker
Utilisez la commande docker images avec le flag -a
pour localiser l’ID des images que vous voulez supprimer.
Lister les images
docker images -a
Supprimer
docker rmi Image Image
Supprimer les images en suspens
Les images de Docker sont constituées de plusieurs couches. Les images en suspens sont des couches qui n’ont aucune relation avec les images marquées.
Lister:
docker images -f dangling=true
Supprimer :
docker images purge
Suppression d’images selon un modèle
Vous pouvez trouver toutes les images qui correspondent à un modèle en utilisant une combinaison de docker images
et grep
. Une fois que vous êtes 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 :
docker images -a | grep "pattern"
Supprimer :
docker images -a | grep "pattern" | awk '{print $3}' | xargs docker rmi
Supprimer toutes les images
Toutes les images de Docker sur un système peuvent être listées en ajoutant -a à la commande docker images
. Une fois que vous êtes sûr de vouloir toutes les supprimer, vous pouvez ajouter le drapeau -q pour passer l’ID de l’image au docker rmi
:
docker images -a
Supprimer :
docker rmi $(docker images -a -q)
Suppression de conteneurs
Supprimer un ou plusieurs conteneurs spécifiques
Utilisez la commande docker ps
avec le flag -a
pour localiser le nom ou l’ID des conteneurs que vous voulez supprimer.
Liste de conteneurs
docker ps -a
Supprimer:
docker rm ID_or_Name ID_or_Name
Supprimer un conteneur à la sortie
Si vous savez, lorsque vous créez un conteneur, que vous ne voudrez pas le conserver une fois que vous aurez terminé, vous pouvez lancer le programme docker run --rm
pour le supprimer automatiquement à sa sortie.
docker run --rm image_name
Supprimer tous les conteneurs quittés
Vous pouvez localiser les conteneurs en utilisant le docker ps -a
et les filtrer selon leur statut : créé, redémarré, en cours d’exécution, en pause ou quitté. Pour consulter la liste des conteneurs quittés, utilisez le drapeau -f
pour filtrer en fonction de leur statut. Lorsque vous avez vérifié que vous voulez supprimer ces conteneurs, utilisez -q
pour transmettre les ID à la commande docker rm
.
Lister :
docker ps -a -f status=exited
Supprimer:
docker rm $(docker ps -a -f status=exited -q)
Supprimer les conteneurs en utilisant plusieurs filtre
Les filtres de Docker peuvent être combinés en répétant le flags filter avec une valeur supplémentaire. Il en résulte une liste de conteneurs qui remplissent l’une ou l’autre de ces conditions.
docker ps -a -f status=exited -f status=created
Supprimer :
docker rm $(docker ps -a -f status=exited -f status=created -q)
Supprimer des conteneurs selon un modèle
Vous pouvez trouver tous les containers qui correspondent à un modèle 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 rmi. Notez que ces utilitaires ne sont pas fournis par Docker et ne sont pas nécessairement disponibles sur tous les systèmes :
docker ps -a | grep "pattern”
Supprimer :
docker ps -a | grep "pattern" | awk '{print $3}' | xargs docker rmi
Arrêter et supprimer tous les conteneurs
Vous pouvez consulter les conteneurs sur votre système avec docker ps. L’ajout du flag -a
affichera tous les conteneurs. Lorsque vous êtes sûr de vouloir les supprimer, vous pouvez ajouter le flag -q
pour fournir les identifiants aux commandes docker start
et docker rm
:
docker ps -a
Supprimer :
docker stop $(docker ps -a -q)
docker rm $(docker ps -a -q)
Suppression de volumes
Supprimer un ou plusieurs volumes spécifiques - Docker 1.9 et suivants
Utilisez la commande docker volume ls
pour localiser le ou les noms de volume que vous souhaitez supprimer. Ensuite, vous pouvez supprimer un ou plusieurs volumes avec la commande docker volume rm
:
docker volume ls
Supprimer :
docker volume rm volume_name volume_name
Supprimer des volumes en suspens - Docker 1.9 et suivants
Étant donné que le principe des volumes est d’exister indépendamment des conteneurs, lorsqu’un conteneur est retiré, un volume n’est pas automatiquement retiré en même temps. Lorsqu’un volume existe et n’est plus connecté à aucun conteneur, on l’appelle un volume en suspens.
Lister le svolumes
docker volume ls -f dangling=true
Supprimer les volumes
docker volume prune
Supprimer un conteneur et son volume
Si vous avez créé un volume sans nom, 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 supprimé silencieusement du système. S’il est nommé, il reste silencieusement présent.
docker rm -v container_name
Conclusion
Ce guide couvre certaines des commandes courantes utilisées pour supprimer les images, les conteneurs et les volumes avec Docker.