Wenn ich a mache docker volume ls, sieht meine Liste der Volumes folgendermaßen aus:
DRIVER VOLUME NAME
local 305eda2bfd9618266093921031e6e341cf3811f2ad2b75dd7af5376d037a566a
local 226197f60c92df08a7a5643f5e94b37947c56bdd4b532d4ee10d4cf21b27b319
...
...
local 209efa69f1679224ab6b2e7dc0d9ec204e3628a1635fa3410c44a4af3056c301
und ich möchte alle meine Volumes auf einmal entfernen. Wie kann ich es tun?
/ # docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1296a5e47ef3 hello-world "/hello" 7 seconds ago Exited (0) 6 seconds ago prickly_poincare
/ # docker system prune
WARNING! This will remove:
- all stopped containers
- all volumes not used by at least one container
- all networks not used by at least one container
- all dangling images
Are you sure you want to continue? [y/N] y
Deleted Containers:
1296a5e47ef3ab021458c92ad711ad03c7f19dc52f0e353f56f062201aa03a35
Das ist großartig, danke. Ich wusste nichts über die neuen pruneBefehle.
Baumgesicht
3
Die Prune-Befehle sind großartig, aber seien Sie vorsichtig mit ihnen. Es scheint, als würden sie davon ausgehen, dass Container zum Zeitpunkt Ihres Aufrufs ausgeführt werden. Es werden Dinge gelöscht, die möglicherweise verbunden sind, aber nicht aktiv verwendet werden (z. B. Netzwerke), was beim nächsten Start vorhandener Container zu Fehlern führt. Verwenden Sie die danglingFilter im
Voraus,
docker system prunescheint lokale Volumes nicht zu entfernen, sondern docker volume prunesortiert sie aus
Maciek Rek
23
Bearbeitet am 2017: Diese Antwort wurde am 16. April 16 gegeben und ist jetzt veraltet und nur für die Docker-Version vor 1.13 korrekt. Bitte verwenden Sie die Antwort von @VonC, jetzt ist sie als korrekt markiert
Um nicht verwendete Volumes zu löschen, können Sie den integrierten Docker- volume rmBefehl verwenden. Der rmBefehl löscht auch alle Verzeichnisse, in /var/lib/docker/volumesdenen es sich nicht um ein Volume handelt. Stellen Sie daher sicher, dass Sie dort nichts gespeichert haben, das Sie speichern möchten:
Befehl zum Auflisten von Volumes, etwas besser als Ihres:
$ docker volume ls -qf dangling=true
Aufräumen:
$ docker volume rm $(docker volume ls -qf dangling=true)
Shellscript zum Löschen verwaister Docker-Volumes in / var / lib / docker / volume und / var / lib / docker / vfs / dir Docker Version 1.4.1 bis 1.11.x.
Grundsätzlich werden verwaiste / baumelnde Volumes bereinigt, es enthält --dry-runjedoch auch einige Docker-Befehle (auf die im vorherigen Kommentar verwiesen wird).
Hinweis zu Docker 1.9 und höher
Um verwaiste Volumes in Docker 1.9 und höher zu löschen, können Sie anstelle dieses Docker-Cleanup-Volumes-Skripts auch die integrierten Docker-Volume-Befehle verwenden. Der integrierte Befehl löscht auch alle Verzeichnisse in / var / lib / docker / volume, die kein Volume sind. Stellen Sie daher sicher, dass Sie nichts dort abgelegt haben, was Sie speichern möchten:
Aufführen:
$ docker volume ls -qf dangling=true
Aufräumen:
$ docker volume rm $(docker volume ls -qf dangling=true)
Oder besser mit einem No-Op umgehen, aber Linux-spezifisch:
prune
Befehle.dangling
Filter imdocker system prune
scheint lokale Volumes nicht zu entfernen, sonderndocker volume prune
sortiert sie ausBearbeitet am 2017: Diese Antwort wurde am 16. April 16 gegeben und ist jetzt veraltet und nur für die Docker-Version vor 1.13 korrekt. Bitte verwenden Sie die Antwort von @VonC, jetzt ist sie als korrekt markiert
Um nicht verwendete Volumes zu löschen, können Sie den integrierten Docker-
volume rm
Befehl verwenden. Derrm
Befehl löscht auch alle Verzeichnisse, in/var/lib/docker/volumes
denen es sich nicht um ein Volume handelt. Stellen Sie daher sicher, dass Sie dort nichts gespeichert haben, das Sie speichern möchten:Befehl zum Auflisten von Volumes, etwas besser als Ihres:
Aufräumen:
Weitere Details zu ls hier , zu rm hier
quelle
--dry-run
Parameter zu testen .--dry-run
Option.Folgendes habe ich als nützlich empfunden : https://github.com/chadoe/docker-cleanup-volumes
Grundsätzlich werden verwaiste / baumelnde Volumes bereinigt, es enthält
--dry-run
jedoch auch einige Docker-Befehle (auf die im vorherigen Kommentar verwiesen wird).quelle
Um die Frage zu beantworten und von Marc zu leihen, funktioniert dies:
quelle