178 votes

Comment faire pour supprimer le panneau d'images basé sur le nom?

Je veux supprimer toutes les versions de docker images avec des noms qui contiennent une chaîne de caractères (imagename).
J'ai essayé de le ci-dessous, mais il ne semble pas fonctionner:

docker images | grep 'imagename' | xargs -I {} docker rmi

275voto

Rambler Points 1610

Essayez les solutions suivantes :

docker rmi $(docker images |grep 'imagename')

121voto

Elton Stoneman Points 7918

Un peu plus exacte de la version grepping uniquement sur le nom du référentiel:

docker rmi $(docker images --format '{{.Repository}}' | grep 'imagename')

28voto

docker images utilise en fait la première position en argument le nom de l'image à filtrer. Pas de grep et awk est nécessaire. L' -q option sera de retour que la mise en correspondance des images Id qui peut être alimenté à l' docker rmi.

docker rmi --force $(docker images -q imagename | uniq)

27voto

Avamore Points 291
docker rmi $(docker images --format '{{.Repository}}:{{.Tag}}' | grep 'imagename')

10voto

kushalbhattad Points 118

Simplement, vous pouvez ajouter --force à la fin de la commande. Comme:

sudo docker rmi <docker_image_id> --force

Pour le rendre plus intelligent , vous pouvez arrêter l'exécution d'un récipient avant de supprimer l'image:

sudo docker stop $(docker ps | grep <your_container_name> | awk '{print $1}')

sudo docker rm $(docker ps | grep <your_container_name> | awk '{print $1}')

sudo docker rmi $(docker images | grep <your_image_name> | awk '{print $3}') --force

En docker ps, $1 est la 1ère colonne c'est à dire l'id de conteneur docker et de 3$ est la 3ème colonne c'est à dire docker id de l'image

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X