So löschen Sie alle lokalen Docker-Docker-Images

265

Ich habe kürzlich angefangen, Docker zu verwenden, und habe nie realisiert, dass ich meine Experimente docker-compose downanstelle von ctrl-coder verwenden sollte docker-compose stop, um sie loszuwerden. Ich habe jetzt eine große Anzahl nicht benötigter Docker-Bilder vor Ort.

Gibt es ein Flag, das ich ausführen kann, um alle lokalen Docker-Images und -Container zu löschen?

So etwas wie docker rmi --all --force--all flag existiert nicht, aber ich suche etwas mit ähnlicher Idee.

Kimmo Hintikka
quelle
2
docker images purge-> entfernt alle Ihre Docker-Bilder
Muthukumar Helius
Mit xargs:docker image ls -q | xargs -I {} docker image rm -f {}
Arkadyt
@muthukumarhelius Ich denke du meinst docker image prune(Bild ist einzigartig und es ist beschneiden statt zu reinigen).
Andrés Mejía

Antworten:

532

Um alle Container einschließlich ihrer Volumes zu löschen, verwenden Sie:

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

Um alle Bilder zu löschen,

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

Denken Sie daran, dass Sie alle Container entfernen sollten, bevor Sie alle Bilder entfernen, aus denen diese Container erstellt wurden.

Wenn Sie unter Windows (Powershell) arbeiten,

$images = docker images -a -q
foreach ($image in $images) { docker image rm $image -f }
techtabu
quelle
7
unknown shorthand flag: 'a' in -abeim Laufendocker rmi -f $(docker images -a -q)
Ashutosh Chamoli
25
@Ashutosh Chamoli: Funktioniert nicht in CMD, funktioniert in PowerShell.
Jack
4
Einzeilige Variante für Powershell:docker images -a -q | % { docker image rm $_ -f }
CodeStix
4
Ich muss hunderte Male hierher gekommen sein. Vielen Dank für das Schreiben dieser Antwort!
Ajay Maity
「Docker rmi -f $ (Docker-Bilder -a -q)」 ist echt schlecht
Sinux
176

Verwenden Sie dies, um alles zu löschen :

docker system prune -a --volumes

Entfernen Sie alle nicht verwendeten Container, Volumes, Netzwerke und Images

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
quelle
1
Fordert jedoch nicht den gesamten Speicherplatz zurück.
Lucian303
@ lucian303 Dieser Ansatz beansprucht Speicherplatz zurück. Vielleicht stehen Sie vor einem bestimmten Problem.
Robert
Ich scheine nur dann das gewünschte Ergebnis zu erzielen, wenn ich dies und die Schritte in @techtabus Antwort
mache
31

Um einfach alles klar zu machen:

$ docker system prune --all

Alles bedeutet:

  • alle angehaltenen Container
  • Alle Netzwerke, die nicht von mindestens einem Container verwendet werden
  • alle Bilder ohne mindestens einen zugeordneten Container
  • Alle bauen Cache
Renatex
quelle
25

docker image prune -a

Entfernen Sie alle nicht verwendeten Bilder, nicht nur baumelnde. -fOption zum Erzwingen hinzufügen.

Lokale Docker-Version: 17.09.0-ce, Git-Commit: 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
quelle
7

Einfache und handliche Befehle

Alle Bilder löschen

docker rmi $(docker images -a)

Löschen von Containern, die sich im verlassenen Zustand befinden

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

Container löschen, die sich im erstellten Zustand befinden

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

HINWEIS: Entfernen Sie alle Behälter und dann die Bilder

Tiefes Nirmal
quelle
Um alle Bilder zu löschen, sollte - "Docker rmi $ (Docker-Bilder -a -q)" sein. -q gibt nur die Bild-IDs zurück
Jimmy MG Lim
Das bedeutet, dass diese Bilder gelöscht wurden. Nochmals überprüfen
Deep Nirmal
3

So löschen Sie alle Bilder:

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

Erläuterung:

Docker-Bilder -a | awk {'print $ 3'}

Dieser Befehl gibt alle Bild-IDs zurück und wird dann verwendet, um das Bild anhand seiner ID zu löschen.

PalFS
quelle
3

Löschen ohne Docker aufzurufen :

rm -rf /var/lib/docker

Dies wird nicht empfohlen, wenn Sie Docker normal ausführen können. Wenn dies jedoch aus irgendeinem Grund nicht möglich oder nicht möglich ist, funktioniert dies.

VasiliNovikov
quelle
2

Sie können Folgendes versuchen:

docker system prune
Bablu Ahmed
quelle
In meinem Fall würde dies ein Volume entfernen, das ich noch verwende. Verwenden Sie dies nicht, wenn Sie nicht wissen, was es tut
Zach Smith
2

So löschen Sie alle Bilder:

docker rmi $(docker images -a -q)

Dabei ist -a alles und -q gibt nur Bild-IDs zurück

So entfernen Sie nicht verwendete Bilder und Container:

docker system prune

Achten Sie darauf, dass Sie Docker-Schwarm verwenden und Ihr lokaler Computer dem Remote-Schwarm beitritt (als Manager / Worker). Ihr lokaler Computer ist das bereitgestellte Repo. Wenn Sie dies ausführen, werden die bereitgestellten Images entfernt.

Jimmy MG Lim
quelle
2
docker rmi $(docker images -q) --force
Simencore
quelle
2
Sie sollten eine Erklärung hinzufügen, wenn Sie eine Antwort in einem Beitrag hinterlassen, damit andere, die sie später finden, sie verstehen können.
Morphyish
1

Hinzufügen zu techtabus akzeptierter Antwort: Wenn Sie Docker unter Windows verwenden, können Sie den folgenden Befehl verwenden

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

Hier docker ps -a -qlistet der Befehl alle Bilder auf und diese Liste wird einzeln an docker rmeinen übergeben

sehe dies , um weitere Informationen darüber , wie diese Art von Befehlsformat funktioniert in Windows cmd.

corvo
quelle
1

Ein anderer Weg mit xargs

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

Führen Sie zwei Schritte aus, um alle lokalen Docker-Docker-Images zu löschen:

Schritt 1: Docker-Bilder (alle Docker-Bilder mit IDs auflisten)

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

Schritt 2: Docker-Image rm 31e522c6cfe4 (IMAGE ID)

      OUTPUT : image deleted
Debasis Das
quelle