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.



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 }

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


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

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

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


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.


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.


2

Sie können Folgendes versuchen:

docker system prune

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.


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

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.


1

Ein anderer Weg mit xargs

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

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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.