Conteúdo
Tutorial de Docker Volume: criar, listar, inspecionar e excluir volumes
docker volume gerencia volumes. Veja o conceito e como usar volumes em Volumes e persistência de dados.
Subcomandos
| Comando | Descrição | Opções comuns |
|---|---|---|
docker volume create [nome] | Cria um volume (se não informar um nome, um nome aleatório será gerado) | --label chave=valor, -d driver, -o opção |
docker volume ls | Lista os volumes | -f filtro, -q lista apenas os nomes, --format |
docker volume inspect nome | Exibe informações detalhadas | -f modelo |
docker volume rm nome... | Exclui volumes (não é possível excluir os que estão em uso) | -f |
docker volume prune | Exclui volumes anônimos não utilizados | -a inclui os nomeados, -f não pede confirmação, --filter |
Filtros de docker volume ls -f: dangling=true (não está sendo usado por nenhum contêiner), name=parte do nome, label=chave=valor, driver=local.
Criar, gravar e ler
$ docker volume create mydata
mydata
$ docker volume ls
DRIVER VOLUME NAME
local 2bc47e5efc92fb9cbc751a0d25853c6c800d4e4806c256fb7d68fa9dff112fcd
local 6729482c30a3f652c14f542c6f341c811f087fc9626efcfdf00a49a5ae721e2c
local 78297657b68403b39f39940496ce3faf49e6257a11d5103d043077a36261236a
local a23af26d1da49e018edecb6e29f9be3875fb02e8c50510a40fbb5cf49da94f81
local mydata
$ docker volume inspect mydata
[
{
"CreatedAt": "2026-10-13T05:28:56Z",
"Driver": "local",
"Labels": null,
"Mountpoint": "/var/lib/docker/volumes/mydata/_data",
"Name": "mydata",
"Options": null,
"Scope": "local"
}
]
$ docker run --rm -v mydata:/data alpine:3.23 sh -c "echo saved > /data/a.txt"
$ docker run --rm -v mydata:/data alpine:3.23 cat /data/a.txt
saved
- Além de
mydata,lsmostra alguns volumes anônimos com nomes longos, deixados por contêineres anteriores (por exemplo, criados automaticamente pela declaraçãoVOLUMEda imagempostgres). Mountpointeminspecté o caminho real dos dados no host Docker.- Dois contêineres diferentes montaram
mydataum após o outro, e o segundo leu o arquivo gravado pelo primeiro: os dados ficam no volume, independentemente do contêiner.
Encontrar e limpar volumes órfãos
$ docker run --rm -v /tmpdata alpine:3.23 true
$ docker volume ls -f dangling=true
DRIVER VOLUME NAME
local 2bc47e5efc92fb9cbc751a0d25853c6c800d4e4806c256fb7d68fa9dff112fcd
local 6729482c30a3f652c14f542c6f341c811f087fc9626efcfdf00a49a5ae721e2c
local 78297657b68403b39f39940496ce3faf49e6257a11d5103d043077a36261236a
local a23af26d1da49e018edecb6e29f9be3875fb02e8c50510a40fbb5cf49da94f81
local mydata
$ docker volume prune -f
Deleted Volumes:
a23af26d1da49e018edecb6e29f9be3875fb02e8c50510a40fbb5cf49da94f81
6729482c30a3f652c14f542c6f341c811f087fc9626efcfdf00a49a5ae721e2c
78297657b68403b39f39940496ce3faf49e6257a11d5103d043077a36261236a
2bc47e5efc92fb9cbc751a0d25853c6c800d4e4806c256fb7d68fa9dff112fcd
Total reclaimed space: 348.9MB
-v /tmpdatainforma apenas o caminho dentro do contêiner, sem nome, e cria um volume anônimo;--rmtambém o exclui ao remover o contêiner.dangling=truelista todos os volumes que não estão sendo usados por nenhum contêiner, incluindo o volume nomeadomydata.prune -fexcluiu apenas os 4 anônimos e liberou 348.9 MB; o volume nomeadomydatafoi mantido.
Labels
$ docker volume create --label env=dev tagged
tagged
$ docker volume ls -f label=env=dev
DRIVER VOLUME NAME
local tagged
$ docker volume rm mydata tagged
mydata
tagged
Adicione labels aos volumes para facilitar a filtragem e a limpeza por projeto ou ambiente, por exemplo, com docker volume prune --filter label=env=dev.
Seções relacionadas
Exercícios
Exercício: crie um volume com a label project=demo e, em seguida, use um comando para excluir todos os volumes com essa label que não estejam em uso (incluindo os nomeados).
Resposta
docker volume create --label project=demo demo_data
docker volume prune -a -f --filter label=project=demo
-a inclui volumes nomeados no escopo da exclusão, e --filter limita a operação aos volumes com essa label.
Perguntas frequentes
Preciso executar docker volume create antes?
Não. docker run -v nome:/caminho cria o volume automaticamente se ele não existir. Criá-lo antes permite adicionar labels ou opções do driver.
docker volume prune vai excluir meu banco de dados?
A partir do Docker 23, docker volume prune exclui apenas **volumes anônimos que não estão sendo usados por nenhum contêiner**; volumes nomeados não são excluídos. docker volume prune -a é que exclui volumes nomeados não utilizados. Veja os testes em [Liberar espaço em disco](/pt/docker/cleanup/).
Como faço backup de um volume?
Use um contêiner temporário para montar o volume e uma pasta do host ao mesmo tempo e empacote os dados com tar. Veja o exemplo em [Volumes e persistência de dados](/pt/docker/volumes/).
Atualizado 14 de outubro de 2026