Docker DNS não está funcionando

2

Estou no ubuntu 16:

Eu tenho um servidor executando um contêiner docker com Bind9 que funciona como meu servidor DNS de rede em 192.168.3.70 . Todos os hosts da minha rede usam isso como DNS e funciona muito bem.

Eu tenho outro contêiner nesse host executando o Jenkins e o DNS não funciona.

Aqui está o que eu tentei com meu /etc/init.d/docker :

# modify these in /etc/default/$BASE (/etc/default/docker)
DOCKER=/usr/bin/$BASE
# This is the pid file managed by docker itself
DOCKER_PIDFILE=/var/run/$BASE.pid
# This is the pid file created/managed by start-stop-daemon
DOCKER_SSD_PIDFILE=/var/run/$BASE-ssd.pid
DOCKER_LOGFILE=/var/log/$BASE.log
DOCKER_OPTS="--dns 192.168.3.70 --dns 8.8.8.8"
DOCKER_DESC="Docker"

Isso não funciona, Jenkins ainda não tem DNS.

Eu reiniciei o daemon, é claro, e nenhuma mudança.

O que há de errado?

EDITAR

Então, eu corri docker exec -i -t d...... /bin/bash e consegui um bash shell.

cat /etc/resolv.conf

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 192.168.3.70
search olympus

Este é um servidor DNS correto e eu posso ping 192.168.3.70

jenkins@d76b1da9544d:/$ ping 192.168.3.70
PING 192.168.3.70 (192.168.3.70): 56 data bytes
64 bytes from 192.168.3.70: icmp_seq=0 ttl=64 time=0.094 ms
64 bytes from 192.168.3.70: icmp_seq=1 ttl=64 time=0.073 ms

Ainda não há dns.

    
por Mike Baranski 28.05.2016 / 00:08

1 resposta

0

O Docker está abstraindo completamente a rede, tornando-se uma bagunça intrincada muito complexa.

Acredito que esteja configurado para redirecionar as conexões de DNS de outros computadores para o contêiner de DNS. Enquanto as conexões DNS da caixa em si não são interceptadas pelo Docker.

É um problema comum. O Docker executa os serviços e você fica sozinho para conectá-los juntos.

O caminho certo para resolvê-lo seria analisar em profundidade a configuração da rede e reconfigurá-la de forma que os serviços possam se comunicar. No entanto, é muito complicado, provavelmente não estamos qualificados para isso e stackoverflow não é apropriado para executar uma longa sessão de depuração.

Assim, teremos que conviver com uma solução simples:

Execute seus servidores DNS normalmente em um servidor comum, não os simplifique. O serviço DNS é crítico em uma infraestrutura. É comum ter pequenos servidores / VMs apenas para isso.

    
por 29.04.2017 / 23:24

Tags