Eu tenho dois computadores na mesma rede com nomes de host e endereços IP abaixo (IPs dinâmicos):
host1.local - 10.0.0.11
host2.local - 10.0.0.12
host1
está executando o Docker com configuração padrão.
Os contêineres host1
podem se conectar host2
usando o endereço IP 10.0.0.12
, mas não conseguem se conectar host2
usando o nome do host host2.local
. Alguém pode me informar como os contêineres podem se conectar diretamente ao hosts2
uso de nomes de host. Observe que ambos os servidores host1, host2
estão no servidor DHCP e não possuem endereço IP fixo, portanto, configure o arquivo/etc/hostsnão funciona no meu caso.
Responder1
Os contêineres Docker geralmente estão norede de ponte padrão:
Quando você inicia o Docker, uma rede de ponte padrão (também chamada de ponte) é criada automaticamente e os contêineres recém-iniciados se conectam a ela, a menos que seja especificado de outra forma.
Você também pode ter pontes definidas pelo usuário com seu próprio serviço DNS:
As pontes definidas pelo usuário fornecem resolução automática de DNS entre contêineres.
Em uma rede de ponte definida pelo usuário, os contêineres podem resolver uns aos outros por nome ou alias.
Existem opções adicionais para configurar a resolução DNS em um contêiner (consulteaqui):
Por padrão, um contêiner herda as configurações de DNS do host, conforme definido no
/etc/resolv.conf
arquivo de configuração. Os contêineres que usam a rede bridge padrão obtêm uma cópia desse arquivo, enquanto os contêineres que usam uma rede personalizada usam o servidor DNS incorporado do Docker, que encaminha pesquisas de DNS externas para os servidores DNS configurados no host.Hosts personalizados definidos em /etc/hosts não são herdados. Para passar hosts adicionais para seu contêiner, consulte "adicionar entradas ao arquivo de hosts do contêiner" na documentação de referência do docker run. Você pode substituir essas configurações por contêiner.
Eadicionar entradas ao arquivo hosts do contêinerdiz:
Você pode adicionar outros hosts ao arquivo de um contêiner
/etc/hosts
usando um ou mais--add-host
sinalizadores. Este exemplo adiciona um endereço estático para um host chamado docker:$ docker run --add-host=docker:93.184.216.34 --rm -it alpine
É claro que você também pode configurar o servidor DNS upstream para resolver corretamente os arquivos *.local
. Se você usar o mDNS para isso, o servidor DNS upstream deverá ser capaz de usá-lo.