O que é um volume
Volume é um armazenamento gerenciado pelo Docker que pode preservar arquivos além da remoção do container que os utiliza. Ele é associado a um caminho dentro da instância, permitindo que a aplicação leia e grave nesse armazenamento.
A persistência depende de usar o volume correto no caminho correto. Criar um volume sem montar o diretório usado pela aplicação não protege o conteúdo que continua sendo gravado na camada local do container.
O caminho de gravação precisa coincidir
Considere uma aplicação configurada para guardar anexos em /app/anexos. Um volume montado em /app/arquivos não recebe automaticamente esses anexos, porque os dois caminhos representam locais diferentes para o processo.
Confira a configuração da aplicação e a montagem efetiva na instância. No exemplo, o teste precisa mostrar que um arquivo gravado em /app/anexos chegou ao armazenamento que será preservado na substituição do container. Um nome como anexos-projeto não comprova essa associação nem a permissão de escrita no caminho utilizado.
A montagem muda o conteúdo visível
Montar um volume com conteúdo sobre um diretório da imagem torna visíveis os arquivos do volume naquele caminho. Os arquivos que já existiam na imagem podem ficar ocultos pela montagem, sem terem sido apagados da imagem.
Um volume novo e vazio pode receber os arquivos existentes no destino conforme o comportamento padrão do Docker. Por isso, encontrar arquivos logo após montar não comprova que você recuperou o armazenamento antigo, e a identidade da montagem precisa ser conferida.
Local e compartilhado têm alcances diferentes
Um volume local fica associado ao armazenamento do host que o fornece. Criar um volume com o mesmo nome em outra máquina não transfere o conteúdo da primeira, e mover a aplicação exige tratar também seus arquivos persistidos.
Um driver pode oferecer armazenamento compartilhado ou remoto, conforme a configuração. O acesso pode depender da rede e de permissões no serviço de armazenamento, e a aplicação ainda precisa suportar múltiplas instâncias gravando simultaneamente no mesmo conteúdo.
Persistência não recupera uma exclusão
Uma aplicação com permissão de escrita pode apagar ou alterar arquivos do volume. O armazenamento preserva essas mudanças, inclusive quando foram acidentais, portanto manter o volume não devolve automaticamente uma versão anterior do conteúdo.
O backup precisa permitir recuperar o que for necessário e ter restauração conferida. Para bancos e outras aplicações que mantêm arquivos em uso, a cópia também precisa respeitar o procedimento de consistência recomendado pelo sistema.
Como verificar a persistência
Em teste, grave um arquivo identificado, confira o volume associado e substitua o container preservando essa montagem. Depois, verifique se o conteúdo reaparece e se a aplicação consegue continuar lendo e gravando no caminho esperado.
Confira também as ações de limpeza previstas, pois volumes podem ser removidos explicitamente e alguns volumes anônimos seguem opções de remoção da execução. Para investigar uma montagem ou uma atualização de Docker com orientação ao vivo, consulte o Desenvolvimento Colaborativo da Dev Side Studio.
Dúvidas frequentes
Perguntas frequentes sobre Volume
- Volume é a mesma coisa que backup?
- Não. Ele mantém arquivos fora da camada gravável do container, mas alterações, exclusões e falhas do armazenamento ainda podem afetar o conteúdo. A recuperação precisa de cópias e procedimentos próprios.
- Usar o mesmo nome em outra máquina recupera os arquivos?
- Não com um volume local independente. O nome não transfere o conteúdo entre hosts. Isso exige armazenamento compartilhado ou um procedimento de migração adequado.
- O conteúdo desapareceu porque montei outro volume?
- Ele pode continuar no volume anterior, apenas fora do caminho acessado pelo novo container. Confira as montagens e os volumes existentes antes de concluir que houve exclusão.
- Dois containers podem usar o mesmo volume?
- Podem, mas a aplicação precisa suportar esse compartilhamento. Permitir acesso simultâneo não garante que gravações concorrentes sejam coordenadas ou que um banco possa ter duas instâncias usando os mesmos arquivos.
Para continuar
Recursos relacionados
Documentação
Docker: volumes
Ciclo de vida, montagem, conteúdo inicial e compartilhamento.
Abrir recursoDocumentação
Docker: opções de armazenamento
Diferenças entre volumes, bind mounts e armazenamento temporário.
Abrir recursoAplicação na formação
Formação DevOps
Volumes permitem preservar arquivos além da substituição de um container, conforme o armazenamento configurado.
Conhecer a formação
Fontes consultadas
Referências deste verbete
Este verbete ajudou você?
Obrigado pela resposta. Ela fica salva apenas neste navegador.