CodeGym /Cursos /Docker SELF /Usando binds

Usando binds

Docker SELF
Nível 19 , Lição 4
Disponível

5.1 Ideia de pastas bind mounts

Montar pastas do host nos containers usando bind mounts é uma funcionalidade poderosa do Docker que permite aos containers usarem diretamente os arquivos e pastas localizados no sistema host. Isso é especialmente útil para desenvolvimento, testes e configurações, quando você precisa usar arquivos locais sem copiá-los para o container. Nesta aula, vamos ver como usar bind mounts, exemplos e as melhores práticas.

Bind mounts permitem montar pastas ou arquivos específicos do sistema host nos containers. Isso é diferente de volumes, que são gerenciados pelo Docker e armazenados numa pasta especial.

Vantagens de usar bind mounts

  1. Acesso direto a arquivos do host: Containers podem usar e modificar diretamente arquivos que estão no host.
  2. Facilidade no desenvolvimento: Desenvolvedores podem alterar arquivos no host e ver essas mudanças em tempo real nos containers.
  3. Flexibilidade: Qualquer pasta no host pode ser montada num container.

Comando para montar bind mounts

Bind mounts são montados usando os parâmetros -v ou --mount ao iniciar o container.

5.2 Exemplos de uso do parâmetro -v

1. Montando um diretório do host no container

Exemplo mais simples de montagem de um diretório do host no container:

Terminal

docker run -d --name my_container -v /path/on/host:/path/in/container nginx

Neste exemplo, o diretório /path/on/host no host é montado no diretório /path/in/container dentro do container nginx.

2. Montando um arquivo do host no container

Você também pode montar arquivos individuais:

Terminal

docker run -d --name my_container -v /path/on/host/config.conf:/etc/nginx/nginx.conf nginx

Neste exemplo, o arquivo de configuração config.conf no host é montado como o arquivo de configuração nginx.conf dentro do container.

5.3 Exemplos de uso do parâmetro --mount

O parâmetro --mount oferece uma maneira mais detalhada de montar diretórios vinculados com a possibilidade de especificar diferentes parâmetros.

1. Montando um diretório usando --mount

Terminal

docker run -d --name my_container --mount type=bind,source=/path/on/host,target=/path/in/container nginx

Este exemplo é semelhante ao exemplo anterior com -v, mas usa uma sintaxe mais detalhada.

2. Montagem no modo somente leitura

Terminal

docker run -d --name my_container --mount 
type=bind,source=/path/on/host,target=/path/in/container,readonly nginx

Neste exemplo, o diretório é montado no modo somente leitura, o que impede alterações nos arquivos dentro do container.

5.4 Exemplos práticos

Pra desenvolver um aplicativo web, tu pode montar um diretório com o código fonte no host dentro do container.

Criando o diretório com o código fonte no host:

Terminal

mkdir -p ~/my_web_app
echo "Hello, World!" > ~/my_web_app/index.html

Rodando um container montando o diretório:

Terminal

docker run -d --name web_dev -v ~/my_web_app:/usr/share/nginx/html nginx

Agora qualquer mudança no diretório ~/my_web_app no host vai ser refletida direto no container.

Exemplo 2: Usando arquivos de configuração

Tu pode montar arquivos de configuração de um diretório no host dentro do container.

Criando um arquivo de configuração no host:

Terminal

echo "user www-data;" > ~/nginx.conf

echo "worker_processes auto;" >> ~/nginx.conf

Rodando um container montando o arquivo de configuração:

Terminal

docker run -d --name nginx_custom -v ~/nginx.conf:/etc/nginx/nginx.conf nginx

Nesse exemplo, o arquivo de configuração do Nginx no host é usado dentro do container.

5.5 Verificando diretórios e arquivos montados

Você pode checar o conteúdo dos diretórios e arquivos montados usando o comando docker exec pra executar comandos dentro do container.

Exemplo

Checando o conteúdo de um diretório:

Terminal

docker exec -it my_container ls /path/in/container

Checando o conteúdo de um arquivo:

Terminal

docker exec -it my_container cat /path/in/container/config.conf

Removendo diretórios vinculados

Os diretórios vinculados não são gerenciados diretamente pelo Docker, então a remoção deles acontece no nível do sistema de arquivos do host.

Exemplo

Remoção de um diretório vinculado no host:

Terminal

rm -r /path/on/host
1
Опрос
Gerenciamento de Dados no Docker,  19 уровень,  4 лекция
недоступен
Gerenciamento de Dados no Docker
Gerenciamento de Dados no Docker
Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION