Voltar ao blog

Como compartilhar dados entre um contêiner Docker e um host

Como compartilhar dados entre um contêiner Docker e um host

Introdução

Geralmente, os containers Docker apenas rodam por um determinado período de tempo – o tempo que leva para executar o comando. Os dados que estão disponíveis dentro do container só podem ser acessados de dentro do container durante o tempo de execução.

Volumes Docker podem ser usados para acessar os arquivos facilmente e armazená-los por um período mais longo. Por exemplo, se você tem um servidor web Nginx e deseja armazenar os logs para auditorias, você pode usar um volume Docker para armazenar os logs do container em sua máquina hospedeira.

Neste tutorial, você aprenderá como compartilhar dados entre o interior do container Docker e a máquina hospedeira. 

Pré-requisitos

Para este tutorial, você precisará dos seguintes pré-requisitos:

Passo 1 – Montar um Volume com Bind Mount

Você pode criar um diretório chamado logs no diretório home do seu usuário atual e montá-lo com bind-mount em /var/log/nginx no container Nginx usando o seguinte comando:

Aqui estão informações mais detalhadas sobre este comando:

  • --name=nginx dá um nome ao container para facilitar a referência.
  • -d o argumento desvincula o processo e o executa em segundo plano.
  • -v hostPath:containerPath mapeia o caminho do host e o caminho do container para realizar a montagem bind.
  • -p hostPort:containerPort o argumento mapeia a porta do container para a porta do host.
  • nginx no final da linha é o nome da imagem que deve ser usada para iniciar o container.
Nota: Sempre use / ou ~/ para iniciar o hostPath, caso contrário, o argumento -v considerará o caminho como o nome do volume e não realizará a montagem bind.

Passo 2 – Acessando Dados no Host

Agora, você tem um container Nginx rodando em seu servidor, e a porta 5000 do seu servidor mapeia para a porta 80 do Nginx. Você pode abrir a porta no navegador web com a seguinte URL:

nginx homepage

No diretório ~/logs, você verá os arquivos access.log e error.log. Você pode ver os logs usando o comando cat:

Você também pode verificar o diretório de logs ~/logs em sua máquina hospedeira e encontrar o arquivo de logs do Nginx. Além disso, se você fizer qualquer alteração na pasta logs, elas também serão refletidas na pasta /var/log/nginx do container também.

Conclusão

Neste tutorial, você aprendeu como compartilhar dados entre o interior do container Docker e a máquina hospedeira. Isso é essencial em ambientes de desenvolvimento onde a análise de logs é indispensável para a depuração.

Para mais recursos sobre o Docker em nosso blog, você pode conferir o seguinte:

Boa Computação!

author

Akshay Nagpal

Autor · CloudSigma

Preslav Dobrev é um designer criativo na CloudSigma, focado na construção de uma identidade empresarial consistente por meio de canais de marketing tradicionais e inovadores. Ele é hábil em combinar a visão artística com o marketing estratégico para criar narrativas de marca impactantes.

Comentários

Nenhum comentário ainda. Seja o primeiro.