O comando oficial para remover todos os dados não utilizados (incluindo volumes sem contêineres) será com docker 1.13
docker system prune
Se você deseja limitar apenas os volumes, removendo apenas os volumes não utilizados :
docker volume prune
Você também tem docker image prune
, docker container prune
etc:
Veja mais em " Eliminar objetos Docker não usados ".
Consulte commit 86de7c0 e PR 26108 .
Você pode vê-lo em ação em play-with-docker.com :
/ # 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
A forma atual (pré-docker 1.13) de gerenciar o volume foi introduzida com o PR 14242 e o docker volume
comando , que documenta em seu comentário de julho de 2015:
docker volume rm $(docker volume ls -q --filter dangling=true)
prune
comandos.dangling
filtros com antecedência se não tiver certeza do que pode serdocker system prune
não parece para remover volumes locais, masdocker volume prune
classifica-o para foraEditado em 2017: Esta resposta foi dada em 16 de abril de 16 e agora está desatualizada e correta apenas para a versão docker anterior a 1.13, use a resposta de @VonC, agora ela está marcada como correta
Para excluir volumes não usados, você pode usar o
volume rm
comando docker integrado . Orm
comando também exclui qualquer diretório/var/lib/docker/volumes
que não seja um volume, portanto, certifique-se de não colocar nada lá que deseja salvar:Comando para listar volumes, um pouco corretos que os seus:
Limpar:
mais detalhes sobre ls aqui , sobre rm aqui
fonte
--dry-run
parâmetro.--dry-run
opção.Isso é o que descobri ser útil: https://github.com/chadoe/docker-cleanup-volumes
Ele basicamente faz uma limpeza de todos os volumes órfãos / pendentes, mas inclui um,
--dry-run
mas também anota alguns comandos incluídos no docker (que são referenciados no comentário anterior)fonte
Para responder à pergunta e emprestando de Marc, isso funciona:
fonte