Update Sept. 2016: Docker 1.13: PR 26108 und Commit 86de7c0 führen einige neue Befehle ein, um die Visualisierung des Speicherplatzes der Docker-Daemon-Daten auf der Festplatte zu vereinfachen und das "Bereinigen" nicht benötigter "Überschüsse zu vereinfachen.
docker system prune
löscht ALLE baumelnden Daten (dh In der Reihenfolge: Container gestoppt, Volumes ohne Container und Bilder ohne Container). Auch unbenutzte Daten mit -a
Option.
Sie haben auch:
Für nicht verwendete Bilder, Verwendung docker image prune -a
(für baumelnden Entfernen und ununsed Bilder).
Warnung: " nicht verwendet " bedeutet "Bilder, auf die von keinem Container verwiesen wird": Seien Sie vorsichtig, bevor Sie sie verwenden -a
.
Wie in der Antwort von AL dargestellt , werden alle nicht verwendeten Bilder entfernt, nicht nur baumelnde ... was etwas zu viel sein kann.docker system prune --all
Die Kombination docker xxx prune
mit der --filter
Option kann eine gute Möglichkeit sein, das Bereinigen einzuschränken ( Docker SDK API 1.28 Minimum, also Docker 17.04+ ).
Die derzeit unterstützten Filter sind:
until (<timestamp>)
- Entfernen Sie nur Container, Bilder und Netzwerke, die vor dem angegebenen Zeitstempel erstellt wurden
label
( label=<key>
, label=<key>=<value>
, label!=<key>
, Oder label!=<key>=<value>
) - nur entfernen , Container, Bilder, Netzwerke und Volumen mit (oder ohne , falls label!=...
verwendet) die angegebenen Etiketten.
Ein Beispiel finden Sie unter " Bilder beschneiden ".
Ursprüngliche Antwort (Sep. 2016)
Normalerweise mache ich:
docker rmi $(docker images --filter "dangling=true" -q --no-trunc)
Ich habe einen Alias zum Entfernen dieser [baumelnden Bilder] 13 :drmi
Der dangling=true
Filter findet nicht verwendete Bilder
Auf diese Weise wird jedes Zwischenbild entfernt, auf das nicht mehr durch ein beschriftetes Bild verwiesen wird.
Ich mache das gleiche zuerst für verlassene Prozesse (Container)
alias drmae='docker rm $(docker ps -qa --no-trunc --filter "status=exited")'
Wie haridsv weist darauf hin , in den Kommentaren :
Technisch gesehen sollten Sie zuerst Container bereinigen, bevor Sie Bilder bereinigen, da dadurch mehr baumelnde Bilder und weniger Fehler erfasst werden .
Jess Frazelle (jfrazelle) hat die bashrc-Funktion :
dcleanup(){
docker rm -v $(docker ps --filter status=exited -q 2>/dev/null) 2>/dev/null
docker rmi $(docker images --filter dangling=true -q 2>/dev/null) 2>/dev/null
}
Um alte Bilder und nicht nur "nicht referenzierte" baumelnde Bilder zu entfernen, können Sie Folgendes berücksichtigen docker-gc
:
Ein einfaches Docker-Container- und Image-Garbage-Collection-Skript.
- Container, die vor mehr als einer Stunde beendet wurden, werden entfernt.
- Bilder, die danach nicht mehr zu einem verbleibenden Container gehören, werden entfernt.
"dangling=true"
wirklich bedeutet?