Volumes
Resumo
Volumes no Docker são recursos fundamentais para garantir a persistência de dados entre execuções de contêineres, permitindo que os dados sejam armazenados de forma segura e confiável, independentemente da efemeridade dos contêineres.
No contexto do Docker, um volume é um recurso essencial que permite persistir dados entre execuções de contêineres. Antes de criar e associar um volume ao nosso contêiner, é importante reforçar alguns conceitos importantes. Um volume não está diretamente associado a um contêiner por padrão. Isso significa que um contêiner não precisa de um volume para funcionar, mas pode ser necessário dependendo do caso de uso. Por exemplo, salvar arquivos de upload, assets ou arquivos de log pode ser um motivo para utilizar volumes.
Além disso, é crucial compreender a separação de responsabilidades ao trabalhar com contêineres. O conceito de volume pode ser entendido como um diretório externo, independente do contêiner. Isso ocorre porque os contêineres são efêmeros e voláteis por padrão. Quando um contêiner é reiniciado ou desligado, qualquer dado dentro dele é perdido, a menos que seja especificamente persistido em um volume.
Para lidar com essa efemeridade, entra o conceito de volume persistente, que é uma associação entre um volume e um contêiner, garantindo que os dados persistam mesmo após o término da execução do contêiner.
No Docker, volumes são gerenciados por meio do comando docker volume
, que permite criar, inspecionar, listar e remover volumes.
Cada volume é identificado pelo seu nome, não por um ID específico, e é possível especificar o driver de armazenamento, sendo o driver local o padrão para armazenamento no próprio host.
Para criar um volume, utiliza-se o comando docker volume create
, seguido pelo nome do volume desejado. Por exemplo, docker volume create primeiro_volume
.
Após a criação do volume, é necessário associá-lo a um contêiner. Isso é feito durante a execução do contêiner, utilizando o argumento -v
ou --volume
seguido do nome do volume e do caminho no contêiner onde se deseja montá-lo. Por exemplo, docker run -v primeiro_volume:/source/app ...
, onde /source/app
é o diretório de trabalho do contêiner.
Nota
É importante notar que o volume não tem um ID específico, sendo identificado apenas pelo nome. Além disso, volumes podem ser inspecionados para visualizar suas propriedades, como o ponto de montagem.