Ich habe Probleme beim Entfernen von Docker-Volumes mit Docker 1.9.1.
Ich habe alle meine gestoppten Container entfernt, damit sie docker ps -a
leer zurückkehren.
Wenn ich benutze docker volume ls
, bekomme ich eine ganze Reihe von Docker-Containern:
docker volume ls
DRIVER VOLUME NAME
local a94211ea91d66142886d72ec476ece477bb5d2e7e52a5d73b2f2f98f6efa6e66
local 4f673316d690ca2d41abbdc9bf980c7a3f8d67242d76562bbd44079f5f438317
local eb6ab93effc4b90a2162e6fab6eeeb65bd0e4bd8a9290e1bad503d2a47aa8a78
local 91acb0f7644aec16d23a70f63f70027899017a884dab1f33ac8c4cf0dabe5f2c
local 4932e2fbad8f7e6246af96208d45a266eae11329f1adf176955f80ca2e874f69
local 68fd38fc78a8f02364a94934e9dd3b5d10e51de5b2546e7497eb21d6a1e7b750
local 7043a9642614dd6e9ca013cdf662451d2b3df6b1dddff97211a65ccf9f4c6d47
#etc x 50
Da keines dieser Volumes etwas Wichtiges enthält, versuche ich, alle Volumes mit zu löschen docker volume rm $(docker volume ls -q)
.
Dabei werden die meisten entfernt, aber ich komme zurück:
Error response from daemon: Conflict: volume is in use
Error response from daemon: Conflict: volume is in use
Error response from daemon: Conflict: volume is in use
Error response from daemon: Conflict: volume is in use
Error response from daemon: Conflict: volume is in use
Für einen beträchtlichen Teil von ihnen. Wie werden diese Volumes verwendet, wenn überhaupt keine Container vorhanden sind?
docker
docker-machine
Tkwon123
quelle
quelle
sudo service docker stop
undsudo service docker start
), hat all diese Geister-Volumes für mich gelöscht. Außerdem scheint es mir jetzt möglich zu sein, Volumes mit dem Befehl docker rm -v ohne Probleme zu entfernen. Der einzige bemerkenswerte Unterschied in der Verwendung ist, dass ich Docker-Compose unter Ubuntu 15.10 verwendet habe. Ich melde mich zurück, wenn ich dieses Problem jemals replizieren kann, aber ansonsten scheint ein einfacher Neustart ausreichend zu sein. Vielen Dank!service docker stop && rm -rf /var/lib/docker/volumes/TheVolumIdYouWantToRemove && service docker start
Antworten:
Mit diesen Funktionen können Sie alles, was mit Docker zu tun hat, brutal entfernen:
Sie können diese zu Ihrer
~/Xrc
Datei hinzufügen , wobei X Ihre Shell-Interpreter-Datei ist (~/.bashrc
wenn Sie Bash verwenden), und sie über die Ausführung neu ladensource ~/Xrc
. Sie können sie auch einfach kopieren, in die Konsole einfügen und anschließend (unabhängig von der Option, die Sie zuvor gewählt haben, um die Funktionen vorzubereiten) einfach ausführen:Es ist auch nützlich für die allgemeine Bereinigung von Docker. Denken Sie daran, dass dadurch auch Ihre Bilder entfernt werden, nicht nur Ihre Container (entweder ausgeführt oder nicht) und Ihre Volumes jeglicher Art.
quelle
docker volume rm
Befehl fehl. Aus den Kommentaren geht hervor, dass die Lösung darin besteht, den Docker-Daemon neu zu starten, um die Referenzanzahl zu korrigieren.even after reboot it still says docker volume is in use..
armageddon
docker-compose down --volumes
tat jedoch (wie von @Robert K. Bell vorgeschlagen)Vielleicht wurde das Volume über erstellt
docker-compose
? Wenn ja, sollte es entfernt werden durch:Dank an Niels Bech Nielsen !
quelle
Ich bin ziemlich neu bei Docker. Ich habe einige anfängliche Testprobleme behoben und konnte auch kein Volume entfernen. Ich hatte alle laufenden Instanzen gestoppt, eine ausgeführt
docker rmi -f $(docker image ls -q)
, aber trotzdem die erhaltenError response from daemon: unable to remove volume: remove uuid: volume is in use
.Ich habe ein
docker system prune
und es hat aufgeräumt, was benötigt wurde, um das letzte Volume zu entfernen:docker system prune
quelle
Das Volumen kann von einem der gestoppten Container verwendet werden. Sie können solche Container mit dem folgenden Befehl entfernen:
Dann können Sie nicht verwendete Volumes entfernen
quelle
Solange Volumes einem Container zugeordnet sind (entweder ausgeführt oder nicht), können sie nicht entfernt werden.
Du musst rennen
auf jedem der laufenden / nicht laufenden Container, auf denen dieses Volume möglicherweise bereitgestellt wurde.
Wenn das Volume auf einem der Container bereitgestellt ist, sollte es im Abschnitt Mounts der Ausgabe des Inspect-Befehls angezeigt werden. Etwas wie das :-
Verwenden Sie nach dem Herausfinden der verantwortlichen Behälter: -
docker rm -f container-1 container-2 ...container-n
bei laufenden Containerndocker rm container-1 container-2 ...container-n
bei nicht laufenden Containernum die Container vollständig vom Host-Computer zu entfernen.
Versuchen Sie dann, das Volume mit dem folgenden Befehl zu entfernen: -
docker volume remove <volume-name/volume-id>
quelle
docker container prune
muss in den meisten Fällen ausreichen.Derzeit können Sie das, was Docker jetzt anbietet, für eine allgemeine und vollständigere Reinigung verwenden:
Fügen Sie
-a
dem Befehl das Flag hinzu, um zusätzlich angehaltene Container und alle nicht verwendeten Bilder (nicht nur baumelnde Bilder) zu entfernen :quelle
Ich bin mir ziemlich sicher, dass diese Volumes tatsächlich auf Ihrem System bereitgestellt sind. Schauen Sie in / proc / mounts und Sie werden sie dort sehen. Sie werden wahrscheinlich brauchen
sudo umount <path>
odersudo umount -f -n <path>
. Sie sollten in der Lage sein, den bereitgestellten Pfad entweder in / proc / mounts oder durch zu erhaltendocker volume inspect
quelle
Sie sollten diesen Befehl mit flag -f (force) eingeben:
sudo docker volume rm -f <VOLUME NAME>
quelle