J'ai eu des problèmes avec la suppression des volumes Docker avec Docker 1.9.1.
J'ai supprimé tous mes conteneurs arrêtés pour que les docker ps -a
retours soient vides.
Lorsque j'utilise docker volume ls
, on me donne toute une série de conteneurs Docker:
docker volume ls
DRIVER VOLUME NAME
local a94211ea91d66142886d72ec476ece477bb5d2e7e52a5d73b2f2f98f6efa6e66
local 4f673316d690ca2d41abbdc9bf980c7a3f8d67242d76562bbd44079f5f438317
local eb6ab93effc4b90a2162e6fab6eeeb65bd0e4bd8a9290e1bad503d2a47aa8a78
local 91acb0f7644aec16d23a70f63f70027899017a884dab1f33ac8c4cf0dabe5f2c
local 4932e2fbad8f7e6246af96208d45a266eae11329f1adf176955f80ca2e874f69
local 68fd38fc78a8f02364a94934e9dd3b5d10e51de5b2546e7497eb21d6a1e7b750
local 7043a9642614dd6e9ca013cdf662451d2b3df6b1dddff97211a65ccf9f4c6d47
#etc x 50
Comme aucun de ces volumes ne contient quoi que ce soit d'important, j'essaye de purger tous les volumes avec docker volume rm $(docker volume ls -q)
.
Dans le processus, la majorité sont supprimés, mais je reviens:
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
Pour une grande partie d'entre eux. Si je n'ai aucun conteneur existant en premier lieu, comment ces volumes sont-ils utilisés?
docker
docker-machine
Tkwon123
la source
la source
sudo service docker stop
etsudo service docker start
) effacé tous ces volumes fantômes pour moi. De plus, il semble que je suis maintenant capable de supprimer des volumes sans problème en utilisant la commande docker rm -v. La seule différence notable d'utilisation est que j'utilise docker-compose sur Ubuntu 15.10. Je ferai un rapport si je suis jamais capable de reproduire ce problème, mais sinon, il semble qu'un simple redémarrage suffira. Merci!service docker stop && rm -rf /var/lib/docker/volumes/TheVolumIdYouWantToRemove && service docker start
Réponses:
Vous pouvez utiliser ces fonctions pour supprimer brutalement tout ce qui concerne Docker:
Vous pouvez les ajouter à votre
~/Xrc
fichier, où X est votre fichier d'interpréteur shell (~/.bashrc
si vous utilisez bash) et les recharger via l'exécutionsource ~/Xrc
. De plus, vous pouvez simplement les copier-coller dans la console et ensuite (quelle que soit l'option que vous avez choisie auparavant pour préparer les fonctions), exécutez simplement:C'est également utile pour le nettoyage général de Docker. Gardez à l'esprit que cela supprimera également vos images, pas seulement vos conteneurs (en cours d'exécution ou non) et vos volumes de tout type.
la source
docker volume rm
commande échouait. D'après les commentaires, la solution semble être de redémarrer le démon docker pour corriger le nombre de références.even after reboot it still says docker volume is in use..
armageddon
docker-compose down --volumes
did cependant (comme suggéré par @Robert K. Bell)Peut-être que le volume a été créé via
docker-compose
? Si tel est le cas, il devrait être supprimé par:Merci à Niels Bech Nielsen !
la source
Je suis assez nouveau dans Docker. J'étais en train de nettoyer un désordre de test initial et je n'ai pas non plus pu supprimer un volume. J'avais arrêté toutes les instances en cours d'exécution, effectué un
docker rmi -f $(docker image ls -q)
, mais toujours reçu le fichierError response from daemon: unable to remove volume: remove uuid: volume is in use
.J'ai fait un
docker system prune
et il a nettoyé ce qui était nécessaire pour supprimer le dernier volume:docker system prune
la source
Le volume peut être utilisé par l'un des conteneurs arrêtés. Vous pouvez supprimer ces conteneurs par commande:
alors vous pouvez supprimer les volumes non utilisés
la source
Tant que les volumes sont associés à un conteneur (en cours d'exécution ou non), ils ne peuvent pas être supprimés.
Tu dois courir
sur chacun des conteneurs en cours d'exécution / non en cours d'exécution sur lesquels ce volume a pu être monté.
Si le volume est monté sur l'un des conteneurs, vous devriez le voir dans la section Montages de la sortie de la commande inspect. Quelque chose comme ça :-
Après avoir identifié le (s) conteneur (s) responsable (s), utilisez: -
docker rm -f container-1 container-2 ...container-n
en cas de conteneurs en cours d'exécutiondocker rm container-1 container-2 ...container-n
en cas de conteneurs non fonctionnelspour supprimer complètement les conteneurs de la machine hôte.
Essayez ensuite de supprimer le volume à l'aide de la commande: -
docker volume remove <volume-name/volume-id>
la source
docker container prune
doit suffire dans la plupart des cas.Actuellement, vous pouvez utiliser ce que docker propose maintenant pour un nettoyage général et plus complet:
Pour supprimer en outre tous les conteneurs arrêtés et toutes les images inutilisées (pas seulement les images pendantes), ajoutez l'
-a
indicateur à la commande:la source
Je suis presque sûr que ces volumes sont réellement montés sur votre système. Regardez dans / proc / mounts et vous les verrez là-bas. Vous aurez probablement besoin de
sudo umount <path>
ousudo umount -f -n <path>
. Vous devriez pouvoir obtenir le chemin monté dans / proc / mounts ou viadocker volume inspect
la source
Vous devez taper cette commande avec l'indicateur -f (force):
sudo docker volume rm -f <VOLUME NAME>
la source