Com usar Volumes no Docker: Criação, Attach e Persistência

Bem-vindo ao nosso tutorial abrangente sobre o uso de volumes no Docker. Neste guia prático, você aprenderá passo a passo como criar, anexar e persistir volumes em contêineres Docker.

Esse tutorial faz parte do Treinamento Docker Compose para Desenvolvedores. >>Clique Aqui<< para conhecer.

 

Os volumes fornecem uma maneira conveniente de armazenar e compartilhar dados entre contêineres, mantendo a integridade dos dados mesmo quando os contêineres são reiniciados ou interrompidos. Ao entender como trabalhar com volumes, você poderá gerenciar efetivamente o armazenamento de dados em seus ambientes de contêineres.

Vamos começar criando um volume novo e explorar as diferentes etapas para conectar, escrever e verificar o conteúdo de arquivos dentro de contêineres.

Tutorial passo a passo para demonstrar o uso de volumes no Docker:

Primeiro, certifique-se de ter o Docker instalado em sua máquina.

1 – Crie um novo volume chamado “first-volume” usando o seguinte comando:

2 – Para inspecionar o volume criado e visualizar suas informações, utilize o comando:

3 – Agora, vamos criar um container chamado “teste-volume” com a imagem “custom-nginx:0.1” e mapeá-lo para o mountpoint “/storage” usando o volume “first-volume”.

Precisamos assumir que você já tem uma imagem no seu docker engine com o nome “custom-nginx:0.1”. Se você não tem e não sabe como criar, <<clique aqui>> veja esse treinamento completo sobre docker compose para desenvolvedores

Utilize o seguinte comando:

4 – Conecte-se no Container:

6 – Escreva uma mensagem de texto dentro do volume

Dentro do container, escreva uma mensagem de texto com o conteúdo “teste-escrita” em um arquivo chamado “/storage/datafile1.txt”. Utilize um editor de texto como o nano para criar o arquivo e adicionar o conteúdo:

Saia do container “teste-volume” digitando exit.

7 – Criando outro Container

Agora, vamos criar outro container chamado “teste-volume-1” baseado na imagem “custom-nginx:0.1” e anexar o volume “first-volume” a ele. Utilize o seguinte comando:

8 – Conecte-se no novo container

Verifique o conteúdo do arquivo “/storage/datafile1.txt” dentro do container “teste-volume-1” para confirmar que a mensagem de texto está presente:

Saia do container “teste-volume” digitando exit.

9 – Faça stop dos containers docker

Mesmo que os containers tenham sido parados, o conteúdo do volume “first-volume” permanecerá intacto.

Você pode verificar isso reiniciando os containers:

O conteúdo do arquivo “/storage/datafile1.txt” deve continuar sendo “teste-escrita”. Isso acontece porque o volume persiste mesmo quando os containers são parados ou reiniciados.

Docker Shared Volume

Agora, vamos criar um container chamado “shared-volume-1” com a imagem “custom-nginx:0.1” e anexar o volume “first-volume” a ele. Utilize o seguinte comando:

Abra uma nova janela para executar o comando a seguir:

Ao executar esses comandos, cada container “shared-volume-1” e “shared-volume-2” irá escrever 100.000 linhas em um arquivo específico para o seu respectivo $HOSTNAME, dentro do diretório /storage do volume compartilhado “first-volume”.

Se você quer verificar, basta acessar como “root” o diretório onde o volume foi criado:

Dessa forma, você estará compartilhando um volume entre dois contêineres, permitindo que eles escrevam dados no mesmo local, facilitando o compartilhamento de informações entre eles.

Lembre-se de que, mesmo após a execução desses comandos, os dados permanecerão persistentes no volume “first-volume” mesmo quando os contêineres forem removidos. Você pode verificar o conteúdo dos arquivos dentro do volume acessando-o posteriormente.

Montando um Volume como Read Only

Em algumas situações, pode fazer sentido não permitir que arquivos sejam alterados. Nesse caso, é possível montar um volume como read-only.

Vejam que no comando anterior, foi adicionado o parâmetro “ro”. Dessa forma não é possível escrever em arquivos desse volume:

Navegue até o diretório e tente escrever ou modificar um arquivo:

Você irá receber uma mensagem parecida com essa:

Como inspecionar um volume no Docker

Conclusão

Parabéns! Agora você dominou o uso de volumes no Docker. Neste tutorial, exploramos passo a passo como criar um volume, anexá-lo a contêineres e garantir a persistência dos dados. Os volumes são uma ferramenta poderosa para armazenar e compartilhar dados entre contêineres, permitindo que você mantenha a integridade dos dados mesmo quando os contêineres são reiniciados ou interrompidos.

Ao compreender os conceitos e as etapas envolvidas na criação e no uso de volumes, você pode otimizar o gerenciamento de armazenamento em seus ambientes de contêineres Docker. A capacidade de conectar, escrever e verificar o conteúdo de arquivos em volumes abre um mundo de possibilidades para compartilhar informações entre contêineres e facilita ainda mais o desenvolvimento e a implantação de aplicativos.

Aproveite seu conhecimento recém-adquirido sobre volumes no Docker e experimente diferentes cenários para explorar ainda mais suas funcionalidades. Com a prática contínua, você se tornará um especialista em gerenciamento de armazenamento em contêineres Docker.

Esperamos que este tutorial tenha sido útil e que você esteja pronto para aplicar esses conhecimentos em seus projetos futuros. Mantenha-se atualizado com as últimas práticas recomendadas do Docker e continue explorando novas maneiras de otimizar seu ambiente de contêineres. Happy Dockerizing!

Scroll to Top