A documentação oficial do Docker menciona que preciso executar docker rm -v containername
para remover especificamente um volume de dados. Mas o que você faz se já removeu todos os contêineres que fazem referência ao volume de dados específico?
A documentação oficial do Docker menciona que preciso executar docker rm -v containername
para remover especificamente um volume de dados. Mas o que você faz se já removeu todos os contêineres que fazem referência ao volume de dados específico?
No Docker 1.9, existe a capacidade de gerenciar melhor os volumes com
docker volume
(veja este PR ):Estes podem ser removidos através deste comando:
Antes da versão 1.9, o Docker não fornecia nenhuma maneira de remover volumes pendentes.
Se esses volumes estiverem ocupando muito espaço em disco e você quiser resolver o problema por conta própria, poderá excluir manualmente os volumes identificando primeiro os que estão em uso. Você pode executar
docker inspect -f '{{ .Volumes }}' containername
para encontrar o local no sistema de arquivos dos volumes em uso e, em seguida, excluir tudo, exceto aqueles. Se você tiver muitos contêineres, poderá executarfor x in $(docker ps -qa | sed '1d'); do docker inspect -f '{{ .Volumes }}' ${x}; done
um loop pelos contêineres e listar os volumes.Melhor ainda, você pode usar o script Python aqui , o pré-requisito é instalar o cliente API python para Docker
pip install docker-py
Comandos de limpeza: a partir do docker 1.13 introduz comandos de limpeza. Para remover todos os contêineres, imagens, redes e volumes não utilizados:
docker system prune
ou individualmente:
docker container prune
docker image prune
docker network prune
docker volume prune
Usar comando
para limpar volumes pendentes do docker 1.9 e superior.
Eu tenho o docker 1.6.
A versão python não funcionou para mim, estava reclamando de incompatibilidade de versão do docker. É incrível que, em tempos como este, nada supere o bom e velho jeito de fazer as coisas.
Simplesmente adicione a declaração da função 'volpurge()' no arquivo .bashrc de sua raiz. Esta função deve ser executada como root.