Estou tendo problemas com a remoção de volumes do Docker com o Docker 1.9.1.
Eu removi todos os meus contêineres parados para que docker ps -a
retornem vazios.
Quando uso docker volume ls
, recebo vários contêineres do Docker:
docker volume ls
DRIVER VOLUME NAME
local a94211ea91d66142886d72ec476ece477bb5d2e7e52a5d73b2f2f98f6efa6e66
local 4f673316d690ca2d41abbdc9bf980c7a3f8d67242d76562bbd44079f5f438317
local eb6ab93effc4b90a2162e6fab6eeeb65bd0e4bd8a9290e1bad503d2a47aa8a78
local 91acb0f7644aec16d23a70f63f70027899017a884dab1f33ac8c4cf0dabe5f2c
local 4932e2fbad8f7e6246af96208d45a266eae11329f1adf176955f80ca2e874f69
local 68fd38fc78a8f02364a94934e9dd3b5d10e51de5b2546e7497eb21d6a1e7b750
local 7043a9642614dd6e9ca013cdf662451d2b3df6b1dddff97211a65ccf9f4c6d47
#etc x 50
Como nenhum desses volumes contém algo importante, tento limpar todos os volumes docker volume rm $(docker volume ls -q)
.
No processo, a maioria é removida, mas eu volto:
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
Para uma porção considerável deles. Se eu não tenho nenhum contêiner existente, como esses volumes estão sendo usados?
docker
docker-machine
Tkwon123
fonte
fonte
sudo service docker stop
esudo service docker start
) limpou todos esses volumes fantasmas para mim. Além disso, parece que agora eu sou capaz de remover volumes sem problemas usando o comando docker rm -v. Apenas diferenças notáveis no uso é que eu tenho usado o docker-compose no Ubuntu 15.10. Vou relatar se conseguir replicar esse problema, mas, caso contrário, parece que uma simples reinicialização será suficiente. Obrigado!service docker stop && rm -rf /var/lib/docker/volumes/TheVolumIdYouWantToRemove && service docker start
Respostas:
Você pode usar estas funções para remover brutalmente tudo o que estiver relacionado ao Docker:
Você pode adicioná-los ao seu
~/Xrc
arquivo, onde X é o seu interpretador de shell (~/.bashrc
se você estiver usando o bash) e recarregá-los através da execuçãosource ~/Xrc
. Além disso, você pode simplesmente copiá-los e colá-los no console e depois (independentemente da opção que você tomou antes de preparar as funções), basta executar:Também é útil para a limpeza geral do Docker. Lembre-se de que isso também removerá suas imagens, não apenas seus contêineres (em execução ou não) e seus volumes de qualquer tipo.
fonte
docker volume rm
comando estava falhando. A partir dos comentários, a solução parece ser reiniciar o daemon do docker para corrigir a contagem de referência.even after reboot it still says docker volume is in use..
armageddon
docker-compose down --volumes
fez embora (como sugerido por @ Robert K. Bell)Talvez o volume tenha sido criado via
docker-compose
? Nesse caso, ele deve ser removido por:Crédito para Niels Bech Nielsen !
fonte
Eu sou bastante novo no Docker. Eu estava limpando uma bagunça de teste inicial e também não consegui remover um volume. Parei todas as instâncias em execução, executei um
docker rmi -f $(docker image ls -q)
, mas ainda recebi oError response from daemon: unable to remove volume: remove uuid: volume is in use
.Eu fiz um
docker system prune
e limpou o que era necessário para remover o último volume:docker system prune
fonte
O volume pode estar em uso por um dos contêineres parados. Você pode remover esses contêineres por comando:
então você pode remover volumes não usados
fonte
Desde que os volumes estejam associados a um contêiner (em execução ou não), eles não poderão ser removidos.
Você tem que correr
em cada um dos contêineres em execução / inativos em que esse volume pode ter sido montado.
Se o volume estiver montado em qualquer um dos contêineres, você deverá vê-lo na seção Montagens da saída do comando inspecionar . Algo assim :-
Depois de descobrir o (s) recipiente (s) responsável (s), use: -
docker rm -f container-1 container-2 ...container-n
no caso de contêineres em funcionamentodocker rm container-1 container-2 ...container-n
no caso de contêineres sem rodagemremover completamente os contêineres da máquina host.
Em seguida, tente remover o volume usando o comando: -
docker volume remove <volume-name/volume-id>
fonte
docker container prune
deve ser suficiente na maioria dos casos.Atualmente, você pode usar o que a janela de encaixe oferece agora para uma limpeza geral e mais completa:
Para remover adicionalmente todos os contêineres parados e todas as imagens não utilizadas (não apenas imagens pendentes), adicione o
-a
sinalizador ao comando:fonte
Tenho certeza de que esses volumes estão realmente montados no seu sistema. Procure em / proc / mounts e você os verá lá. Você provavelmente precisará
sudo umount <path>
ousudo umount -f -n <path>
. Você deve conseguir o caminho montado em / proc / mounts ou através dedocker volume inspect
fonte
Você deve digitar este comando com o sinalizador -f (force):
sudo docker volume rm -f <VOLUME NAME>
fonte