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.

Kimmo Hintikka
la source
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 }
techtabu
la source
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

Robert
la source
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
Renatex
la source
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
Robert Ranjan
la source
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

Nirmal profond
la source
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.

PalFS
la source
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.

VasiliNovikov
la source
2

Vous pouvez essayer comme ceci:

docker system prune
Bablu Ahmed
la source
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.

Jimmy MG Lim
la source
2
docker rmi $(docker images -q) --force
simencore
la source
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.

corvo
la source
1

Une autre façon avec xargs

docker image ls -q | xargs -I {} docker image rm -f {}
Arkadyt
la source
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
Debasis Das
la source