Executando um (ligeiramente modificado) Ubuntu: 16.04 imagem docker, não é possível acessar servidores DNS. Isto é evidenciado por ser capaz de fazer o ping de um endereço IP resolvido para google.com (como 172.217.4.142, que foi resolvido em um computador diferente), mas não conseguir pingar google.com.
root@12345678910:/# ping -c 1 216.58.194.174
PING 216.58.194.174 (216.58.194.174) 56(84) bytes of data.
64 bytes from 216.58.194.174: icmp_seq=1 ttl=46 time=20.5 ms
--- 216.58.194.174 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 20.551/20.551/20.551/0.000 ms
root@12345678910:/# ping -c 1 google.com
ping: unknown host google.com
A maioria do meu googling levanta questões sobre a configuração de sinalizadores de DNS. No entanto, tentei definir a variável DOCKER_OPTS em /etc/default/docker
apontar para muitos Servidores DNS:
DOCKER_OPTS="--dns 209.244.0.3 --dns 209.244.0.4 --dns 64.6.64.6 --dns 64.6.65.6 --dns 8.8.8.8 --dns 8.8.4.4 --dns 84.200.69.80 --dns 84.200.70.40 --dns 8.26.56.26 --dns 8.20.247.20 --dns 208.67.222.222 --dns 208.67.220.220 --dns 199.85.126.10 --dns 199.85.127.10 --dns 81.218.119.11 --dns 209.88.198.133 --dns 195.46.39.39 --dns 195.46.39.40 --dns 192.95.54.3 --dns 192.95.54.1 --dns 208.76.50.50 --dns 208.76.51.51 --dns 216.146.35.35 --dns 216.146.36.36 --dns 37.235.1.174 --dns 37.235.1.177 --dns 198.101.242.72 --dns 23.253.163.53 --dns 77.88.8.8 --dns 77.88.8.1 --dns 91.239.100.100 --dns 89.233.43.71 --dns 74.82.42.42 --dns 109.69.8.51"
bem como definir a variável DNS em /etc/docker/daemon.json
(como descrito Aqui ):
{
"dns": [ "209.244.0.3", "209.244.0.4", "64.6.64.6", "64.6.65.6", "8.8.8.8", "8.8.4.4", "84.200.69.80", "84.200.70.40", "8.26.56.26", "8.20.247.20", "208.67.222.222", "208.67.220.220", "199.85.126.10", "199.85.127.10", "81.218.119.11", "209.88.198.133", "195.46.39.39", "195.46.39.40", "192.95.54.3", "192.95.54.1", "208.76.50.50", "208.76.51.51", "216.146.35.35", "216.146.36.36", "37.235.1.174", "37.235.1.177", "198.101.242.72", "23.253.163.53", "77.88.8.8", "77.88.8.1", "91.239.100.100", "89.233.43.71", "74.82.42.42", "109.69.8.51" ]
}
sem sucesso para qualquer tentativa.
(Estes são todos os endereços IP dos servidores DNS listados vida )
Uma opção que eu queria tentar era redefinir as tabelas ip e ponte de rede , mas esta sugestão é muito antiga para confiar (por exemplo docker -d
não é mais um comando válido)
Um possível problema é que esta máquina está na Ethernet da universidade e teve que ser listada em branco com o endereço de hardware Ethernet da máquina.
Na máquina host Ubuntu16, esta foi a eno1
dispositivo (se eu estiver usando o termo correto).
Meu primeiro pensamento foi que, desde o docker0
endereço de hardware é diferente, talvez a rede da universidade esteja bloqueando esse tráfego.
Mas eu não acho que este é o problema, porque eu ainda posso pingar o endereço IP bruto.
Talvez algo esteja perdido na tradução ao consultar o DNS?
Alguma sugestão?
Informação da versão:
- Anfitrião: Linux hostname 4.4.0-92-generic # 115-Ubuntu SMP Qui 10 de Agosto 09:04:33 UTC 2017 x86_64 x86_64 x86_64 GNU / Linux
- Container: ubuntu: 16.04 com o ping do host copiado (não é possível instalar com o apt sem internet).
- Docker: Docker versão 1.12.6, compilação 78d1802
fonte