Comment supprimer toutes les images Docker locales de Docker


267

J'ai récemment commencé à utiliser Docker et je n'ai jamais réalisé que je devrais utiliser à la docker-compose downplace ctrl-cou docker-compose stoppour me débarrasser de mes expériences. J'ai maintenant un grand nombre d'images Docker inutiles localement.

Existe-t-il un indicateur que je peux exécuter pour supprimer toutes les images et conteneurs Docker locaux?

Quelque chose comme docker rmi --all --force--all flag n'existe pas mais je cherche quelque chose avec une idée similaire.



2
docker images purge-> supprimera toutes vos images de docker
muthukumar helius

Avec Xargs:docker image ls -q | xargs -I {} docker image rm -f {}
Arkadyt

@muthukumarhelius Je pense que vous voulez dire docker image prune(l'image est singulière et c'est du pruneau au lieu de la purger).
Andrés Mejía

Réponses:


535

Pour supprimer tous les conteneurs, y compris son utilisation de volumes,

docker rm -vf $(docker ps -a -q)

Pour supprimer toutes les images,

docker rmi -f $(docker images -a -q)

N'oubliez pas que vous devez supprimer tous les conteneurs avant de supprimer toutes les images à partir desquelles ces conteneurs ont été créés.

Si vous travaillez sur Windows (Powershell),

$images = docker images -a -q
foreach ($image in $images) { docker image rm $image -f }

7
unknown shorthand flag: 'a' in -alors de l'exécutiondocker rmi -f $(docker images -a -q)
Ashutosh Chamoli

25
@Ashutosh Chamoli: ne fonctionne pas dans CMD, fonctionne dans PowerShell.
Jack

4
Variante à une ligne pour PowerShell:docker images -a -q | % { docker image rm $_ -f }
CodeStix

4
Je dois être venu ici des centaines de fois. Merci d'avoir écrit cette réponse!
Ajay Maity

「Docker rmi -f $ (images de docker -a -q)」 est un vrai
dur à cuire

176

Utilisez-le pour tout supprimer :

docker system prune -a --volumes

Supprimez tous les conteneurs, volumes, réseaux et images inutilisés

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 images without at least one container associated to them
    - all build cache

https://docs.docker.com/engine/reference/commandline/system_prune/#extended-description


1
Cependant, ne récupère pas tout l'espace disque.
lucian303

@ lucian303 cette approche récupère de l'espace disque. Vous êtes peut-être confronté à un problème particulier.
Robert

Je ne semble obtenir le résultat souhaité que lorsque je fais cela et les étapes de la réponse de
@techtabu

31

Pour effacer tout simplement:

$ docker system prune --all

Tout signifie:

  • tous les conteneurs arrêtés
  • tous les réseaux non utilisés par au moins un conteneur
  • toutes les images sans au moins un conteneur qui leur est associé
  • tout le cache de construction

26

docker image prune -a

Supprimez toutes les images inutilisées, pas seulement celles qui pendent. Ajouter une -foption pour forcer.

Version Docker locale: 17.09.0-ce, validation Git: afdb6d4, OS / Arch: darwin / amd64

$ docker image prune -h
Flag shorthand -h has been deprecated, please use --help

Usage:  docker image prune [OPTIONS]

Remove unused images

Options:
  -a, --all             Remove all unused images, not just dangling ones
      --filter filter   Provide filter values (e.g. 'until=<timestamp>')
  -f, --force           Do not prompt for confirmation
      --help            Print usage

7

Commandes simples et maniables

Pour supprimer toutes les images

docker rmi $(docker images -a)

Pour supprimer des conteneurs qui sont à l'état quitté

docker rm $(docker ps -a -f status=exited -q)

Pour supprimer des conteneurs qui sont à l'état créé

docker rm $(docker ps -a -f status=created -q)

REMARQUE: Retirez tous les conteneurs puis supprimez les images


pour supprimer toutes les images, devrait être - "docker rmi $ (images docker -a -q)". -q renvoie uniquement les identifiants d'image
Jimmy MG Lim

cela signifie qu'il a supprimé ces images. Revérifiez encore une fois
Deep Nirmal

3

Pour supprimer toutes les images:

docker rmi -f $(docker images -a | awk {'print $3'})

Explication:

images docker -a | awk {'print $ 3'}

Cette commande renverra tous les identifiants d'image, puis sera utilisée pour supprimer l'image à l'aide de son identifiant.


3

Supprimer sans invoquer docker :

rm -rf /var/lib/docker

Ce n'est pas conseillé si vous pouvez exécuter docker normalement, mais si pour une raison quelconque vous ne pouvez pas ou ne voulez pas, cela fonctionnera.


2

Vous pouvez essayer comme ceci:

docker system prune

Dans mon cas, cela supprimerait un volume que j'utilise toujours. Ne l'utilisez pas si vous ne savez pas ce qu'il fait
Zach Smith

2

Pour supprimer toutes les images:

docker rmi $(docker images -a -q)

où -a est tout et -q renvoie uniquement les ID d'image

Pour supprimer des images et des conteneurs inutilisés:

docker system prune

méfiez-vous comme si vous utilisez un docker swarm, et que votre machine locale rejoint un essaim distant (en tant que gestionnaire / travailleur), votre local sera le référentiel déployé. son exécution supprime ainsi les images déployées.


2
docker rmi $(docker images -q) --force

2
Vous devez ajouter quelques explications lorsque vous laissez une réponse sur un message, afin que d'autres personnes la trouvant plus tard puissent la comprendre.
Morphyish

1

Ajout à la réponse acceptée de techtabu, Si vous utilisez Docker sur Windows, vous pouvez utiliser la commande suivante

for /F "delims=" %A in ('docker ps -a -q') do docker rm %A

ici, la commande docker ps -a -qrépertorie toutes les images et cette liste est passée àdocker rm une par une

voir ceci pour plus de détails sur le fonctionnement de ce type de format de commande dans windows cmd.


1

Une autre façon avec xargs

docker image ls -q | xargs -I {} docker image rm -f {}

0

Pour supprimer toutes les images Docker locales de Docker, suivez 2 étapes:

étape 1: images de docker (liste de toutes les images de docker avec identifiants)

     example :
     REPOSITORY    TAG    IMAGE ID            CREATED             SIZE
     pradip564/my  latest 31e522c6cfe4        3 months ago        915MB

étape 2: image docker rm 31e522c6cfe4 (ID IMAGE)

      OUTPUT : image deleted
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.