2014-12-26 7 views
5

Sulla macchina host, è molto veloce cercare un dominio. Ma all'interno del contenitore docker, è molto più lento il timeout.lento o timeout di DNS che si risolve all'interno della finestra mobile

La macchina host è un host virtuale e il suo indirizzo di server DNS è 127.0.0.1 (strano ma vero). Così ho provato a modificare /etc/resolv.conf all'interno del contenitore e impostare il server DNS su 172.x (indirizzo host). Di conseguenza, non ho visto alcun effetto positivo.

Ho anche provato a impostare il server DNS del contenitore in modo che sia autocostruito (101.x), ma è comunque lento cercare un dominio. Un'altra cosa strana è che il ping 101.x è molto veloce.

Sono confuso su questo fenomeno, chiunque può spiegare e aiutare?

+0

incontrare uno stesso problema, l'hai risolto? – Chen

+0

sfortunatamente, no. – dastan

+0

quale versione di immagine stai usando? per me è alpino, che ha ancora un bug con risoluzione DNS, vedi https://github.com/gliderlabs/docker-alpine/issues/8 – Chen

risposta

0

Non sono sicuro del motivo per cui la risoluzione del DNS è lenta nei contenitori, ma ho una procedura che seguo per risolvere il DNS nei contenitori della finestra mobile.

Per verificare problema di risoluzione DNS:

# docker run busybox nslookup google.com 
    Server: 8.8.8.8 
    Address 1: 8.8.8.8 
    nslookup: can't resolve 'google.com' 

scoprire il server DNS utilizzato nella macchina:

# nm-tool |grep DNS 
    DNS:    172.24.100.50 
    DNS:    10.1.100.50 

Eseguire nuovamente utilizzando IP DNS trovato nel passaggio precedente che risolve il problema DNS:

# docker run --dns 172.24.100.50 busybox nslookup google.com 
Server: 172.24.100.50 
Address 1: 172.24.100.50 indc01.radisys.com 
Name:  google.com 
Address 1: 2607:f8b0:4009:80c::200e ord36s01-in-x0e.1e100.net 
Address 2: 172.217.4.110 ord36s04-in-f14.1e100.net 

Per risolvere definitivamente aggiungere il seguente contenuto come di seguito in un nuovo file:

[email protected]:/home/labadmin# cat /etc/docker/daemon.json 
{ 
    "dns" : ["172.24.100.50", "8.8.8.8"] 
} 

Maggiori informazioni Docker DNS configuration.

Riavviare il servizio finestra mobile e verificare di nuovo:

# docker run busybox nslookup google.com 
Server: 172.24.100.50 
Address 1: 172.24.100.50 indc01.radisys.com 
Name:  google.com 
Address 1: 2607:f8b0:4009:801::200e ord30s31-in-x0e.1e100.net 
Address 2: 172.217.4.238 ord30s31-in-f14.1e100.net 

controllare lanciando il contenitore:

# docker run -it e02e811dd08f 
/# ping google.com 
PING google.com (172.217.4.238): 56 data bytes 
64 bytes from 172.217.4.238: seq=0 ttl=47 time=251.506 ms 
64 bytes from 172.217.4.238: seq=1 ttl=47 time=245.621 ms 

Spero che questo aiuti.

Problemi correlati