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:
- Servidor Ubuntu 18.04: Você pode facilmente criar um novo servidor CloudSigma com a imagem do Ubuntu 18.04, seguindo nosso tutorial útil.
- Docker – Você pode instalar o Docker usando nosso tutorial sobre como configurar o Docker no Ubuntu e se familiarizar com ele.
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:
|
1 |
docker run --name=nginx -d -v ~/logs:/var/log/nginx -p 5000:80 nginx |
Aqui estão informações mais detalhadas sobre este comando:
--name=nginxdá um nome ao container para facilitar a referência.-do argumento desvincula o processo e o executa em segundo plano.-v hostPath:containerPathmapeia o caminho do host e o caminho do container para realizar a montagem bind.-p hostPort:containerPorto argumento mapeia a porta do container para a porta do host.nginxno final da linha é o nome da imagem que deve ser usada para iniciar o container.
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:
|
1 |
http://serverIP:5000/ |

No diretório ~/logs, você verá os arquivos access.log e error.log. Você pode ver os logs usando o comando cat:
|
1 |
cat access.log |
|
1 2 3 |
Saída: xx.xxx.xxx.xxx - - [17/Apr/2021:19:25:05 +0000] "GET / HTTP/1.1" 200 612 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 11_2_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/xx.xxx.xxx.xxx Safari/537.36" "-" xx.xxx.xxx.xxx - - [17/Apr/2021:19:25:05 +0000] "GET /favicon.ico HTTP/1.1" 404 556 "http://xx.xxx.xxx.xxx:5000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 11_2_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/xx.xxx.xxx.xxx Safari/537.36" "-" |
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:
- Como instalar & operar o Docker no Ubuntu na nuvem pública
- Instalando e Configurando o Docker no CentOS 7
- Limpar Recursos do Docker – Imagens, Containers e Volumes
- Como Rodar o Docker na CloudSigma (com CloudInit) Atualizado
Boa Computação!
Comentários
Nenhum comentário ainda. Seja o primeiro.