Android

Comment supprimer des conteneurs Docker, des images, des volumes et des réseaux

Azure Friday | Azure Container Registry Geo-replication

Azure Friday | Azure Container Registry Geo-replication

Table des matières:

Anonim

Docker vous permet de créer, tester et déployer rapidement des applications en tant que conteneurs portables et autonomes qui peuvent s'exécuter pratiquement n'importe où.

Docker ne supprime pas les objets inutilisés tels que les conteneurs, les images, les volumes et les réseaux, sauf si vous le lui demandez explicitement de le faire. Lorsque vous travaillez avec Docker, vous pouvez facilement accumuler un grand nombre d'objets inutilisés qui consomment un espace disque important et encombrent la sortie produite par les commandes Docker.

Ce guide sert de «feuille de triche» pour aider les utilisateurs de Docker à organiser leur système et à libérer de l'espace disque en supprimant les conteneurs, images, volumes et réseaux Docker inutilisés.

Suppression de tous les objets inutilisés

La commande docker system prune supprimera tous les conteneurs arrêtés, toutes les images pendantes et tous les réseaux inutilisés:

docker system prune

Vous serez invité à continuer, utilisez l'indicateur -f ou --force pour contourner l'invite.

WARNING! This will remove: - all stopped containers - all networks not used by at least one container - all dangling images - all build cache Are you sure you want to continue?

docker system prune --volumes

WARNING! This will remove: - all stopped containers - all networks not used by at least one container - all volumes not used by at least one container - all dangling images - all build cache Are you sure you want to continue? y

Suppression des conteneurs Docker

Les conteneurs Docker ne sont pas automatiquement supprimés lorsque vous les arrêtez, sauf si vous démarrez le conteneur à l'aide de l'indicateur --rm .

Retirer un ou plusieurs conteneurs

Pour supprimer une ou plusieurs images Docker, utilisez la commande docker container rm suivie de l'ID des conteneurs que vous souhaitez supprimer.

Vous pouvez obtenir une liste de tous les conteneurs en passant l'indicateur -a à la commande docker container ls :

docker container ls -a

La sortie devrait ressembler à ceci:

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES cc3f2ff51cab centos "/bin/bash" 2 months ago Created competent_nightingale cd20b396a061 solita/ubuntu-systemd "/bin/bash -c 'exec …" 2 months ago Exited (137) 2 months ago systemd fb62432cf3c1 ubuntu "/bin/bash" 3 months ago Exited (130) 3 months ago jolly_mirzakhani

Une fois que vous connaissez l' CONTAINER ID des conteneurs que vous souhaitez supprimer, transmettez-le à la commande docker container rm . Par exemple, pour supprimer les deux premiers conteneurs répertoriés dans la sortie ci-dessus, exécutez:

docker container rm cc3f2ff51cab cd20b396a061

Error response from daemon: You cannot remove a running container fc983ebf4771d42a8bd0029df061cb74dc12cb174530b2036987575b83442b47. Stop the container before attempting removal or force remove.

Supprimer tous les conteneurs arrêtés

Avant d'exécuter la commande de suppression, vous pouvez obtenir une liste de tous les conteneurs non exécutés (arrêtés) qui seront supprimés à l'aide de la commande suivante:

docker container ls -a --filter status=exited --filter status=created

Pour supprimer tous les conteneurs arrêtés, utilisez la commande docker container prune :

docker container prune

Vous serez invité à continuer, utilisez l'indicateur -f ou --force pour contourner l'invite.

WARNING! This will remove all stopped containers. Are you sure you want to continue? y

Supprimer les conteneurs à l'aide de filtres

La commande docker container prune vous permet de supprimer des conteneurs en fonction de leur condition à l'aide de l'indicateur de filtrage --filter .

Au moment de la rédaction de cet article, les filtres actuellement pris en charge sont until et label . Vous pouvez utiliser plusieurs filtres en utilisant plusieurs indicateurs --filter .

Par exemple, pour supprimer toutes les images créées il y a plus de 12 heures, exécutez:

docker container prune --filter "until=12h"

Arrêtez et retirez tous les conteneurs

Vous pouvez obtenir une liste de tous les conteneurs Docker sur votre système à l'aide de la commande docker container ls -aq .

Pour arrêter tous les conteneurs en cours d'exécution, utilisez la commande docker container stop suivie d'une liste de tous les ID de conteneurs.

docker container stop $(docker container ls -aq)

Une fois tous les conteneurs arrêtés, vous pouvez les supprimer à l'aide de la commande docker container rm suivie de la liste d'ID des conteneurs.

docker container rm $(docker container ls -aq)

Suppression d'images Docker

Supprimer une ou plusieurs images

Pour supprimer une ou plusieurs images Docker, utilisez la commande docker images ls pour trouver l'ID des images que vous souhaitez supprimer.

docker image ls

La sortie devrait ressembler à ceci:

REPOSITORY TAG IMAGE ID CREATED SIZE centos latest 75835a67d134 7 days ago 200MB ubuntu latest 2a4cca5ac898 2 months ago 111MB linuxize/fedora latest a45d6dca3361 3 months ago 311MB java 8-jre e44d62cf8862 3 months ago 311MB

Une fois que vous avez localisé les images que vous souhaitez supprimer, transmettez leur IMAGE ID à la commande docker image rm . Par exemple, pour supprimer les deux premières images répertoriées dans la sortie ci-dessus, exécutez:

docker image rm 75835a67d134 2a4cca5ac898

Error response from daemon: conflict: unable to remove repository reference "centos" (must force) - container cd20b396a061 is using its referenced image 75835a67d134

Supprimer les images pendantes

Docker fournit une commande de docker image prune qui peut être utilisée pour supprimer les images pendantes et inutilisées.

Une image qui pend est une image qui n'est pas balisée et qui n'est utilisée par aucun conteneur. Pour supprimer les images pendantes, tapez:

docker image prune

Vous serez invité à continuer, utilisez l'indicateur -f ou --force pour contourner l'invite.

WARNING! This will remove all dangling images. Are you sure you want to continue? y Lorsque vous supprimez des images pendantes, si les images créées par vous ne sont pas marquées, elles seront également supprimées.

Supprimer toutes les images inutilisées

Pour supprimer toutes les images qui ne sont référencées par aucun conteneur existant, pas seulement celles qui pendent, utilisez la commande prune avec l'indicateur -a :

docker image prune -a

WARNING! This will remove all images without at least one container associated to them. Are you sure you want to continue? y

Supprimer des images à l'aide de filtres

Avec la commande docker image prune , vous pouvez également supprimer des images basées sur une certaine condition en utilisant l'indicateur de filtrage --filter .

Au moment de la rédaction de cet article, les filtres actuellement pris en charge sont until et label . Vous pouvez utiliser plusieurs filtres en utilisant plusieurs indicateurs --filter .

Par exemple, pour supprimer toutes les images créées il y a plus de 12 heures, vous devez exécuter:

docker image prune -a --filter "until=12h"

Suppression des volumes Docker

Supprimer un ou plusieurs volumes

Pour supprimer un ou plusieurs volumes Docker, utilisez la commande docker volume ls pour trouver l'ID des volumes que vous souhaitez supprimer.

docker volume ls

La sortie devrait ressembler à ceci:

DRIVER VOLUME NAME local 4e12af8913af888ba67243dec78419bf18adddc3c7a4b2345754b6db64293163 local terano

Une fois que vous avez trouvé le VOLUME NAME des volumes que vous souhaitez supprimer, transmettez-les à la commande docker volume rm . Par exemple, pour supprimer le premier volume répertorié dans la sortie ci-dessus, exécutez:

docker volume rm 4e12af8913af888ba67243dec78419bf18adddc3c7a4b2345754b6db64293163

Error response from daemon: remove 4e12af8913af888ba67243dec78419bf18adddc3c7a4b2345754b6db64293163: volume is in use -

Supprimer tous les volumes inutilisés

Pour supprimer tous les volumes inutilisés, utilisez la commande docker image prune :

docker volume prune

Vous serez invité à continuer, utilisez l'indicateur -f ou --force pour contourner l'invite.

WARNING! This will remove all local volumes not used by at least one container. Are you sure you want to continue?

Suppression des réseaux Docker

Supprimer un ou plusieurs réseaux

Pour supprimer un ou plusieurs réseaux Docker, utilisez la commande docker network ls pour trouver l'ID des réseaux que vous souhaitez supprimer.

docker network ls

La sortie devrait ressembler à ceci:

NETWORK ID NAME DRIVER SCOPE 107b8ac977e3 bridge bridge local ab998267377d host host local c520032c3d31 my-bridge-network bridge local 9bc81b63f740 none null local

Une fois que vous avez localisé les réseaux que vous souhaitez supprimer, transmettez leur NETWORK ID à la commande docker network rm . Par exemple, pour supprimer le réseau avec le nom my-bridge-network run:

docker network rm c520032c3d31

Error response from daemon: network my-bridge-network id 6f5293268bb91ad2498b38b0bca970083af87237784017be24ea208d2233c5aa has active endpoints

Supprimer tout le réseau inutilisé

Utilisez la commande docker network prune pour supprimer tous les réseaux inutilisés.

docker network prune

Vous serez invité à continuer, utilisez l'indicateur -f ou --force pour contourner l'invite.

WARNING! This will remove all networks not used by at least one container. Are you sure you want to continue?

Supprimer des réseaux à l'aide de filtres

Avec la commande docker network prune vous pouvez supprimer les réseaux en fonction des conditions à l'aide de l'indicateur de filtrage --filter .

Au moment de la rédaction de cet article, les filtres actuellement pris en charge sont until et label . Vous pouvez utiliser plusieurs filtres en utilisant plusieurs indicateurs --filter .

Par exemple, pour supprimer tous les réseaux créés il y a plus de 12 heures, exécutez:

docker network prune -a --filter "until=12h"

Conclusion

Dans ce guide, nous vous avons montré certaines des commandes courantes pour supprimer les conteneurs Docker, les images, les volumes et les réseaux.

Vous devriez également consulter la documentation officielle de Docker.

docker