
Me he quedado con el problema de una resolución de DNS muy lenta dentro del contenedor acoplable. La GET simple a 'google.com' tarda unos 4 segundos en finalizar, mientras que la misma solicitud en el host tarda 0,052 ms. Además, la solicitud funciona perfectamente si la envío a una dirección IP, por eso sugerí un problema de DNS. Busqué una respuesta, la mayoría de ellas trataban sobre la configuración de servidores DNS, /etc/docker/daemon.json
lo cual hice pero no solucionó mi problema. El servidor se ejecuta en Ubuntu 16.04. También tengo un servidor de desarrollo que ejecuta las mismas configuraciones pero funciona bien.
Anfitrión:
time curl -g 'google.com'
<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
<TITLE>301 Moved</TITLE></HEAD><BODY>
<H1>301 Moved</H1>
The document has moved
<A HREF="http://www.google.com/">here</A>.
</BODY></HTML>
real 0m0.052s
user 0m0.004s
sys 0m0.004s
time nslookup google.com
Server: 188.93.16.19
Address: 188.93.16.19#53
Non-authoritative answer:
Name: google.com
Address: 173.194.73.102
Name: google.com
Address: 173.194.73.139
Name: google.com
Address: 173.194.73.100
Name: google.com
Address: 173.194.73.113
Name: google.com
Address: 173.194.73.138
Name: google.com
Address: 173.194.73.101
real 0m0.013s
user 0m0.004s
sys 0m0.004s
Envase:
time curl -g https://google.com
<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
<TITLE>301 Moved</TITLE></HEAD><BODY>
<H1>301 Moved</H1>
The document has moved
<A HREF="https://www.google.com/">here</A>.
</BODY></HTML>
real 0m4.592s
user 0m0.004s
sys 0m0.012s
time nslookup google.com
Server: 127.0.0.11
Address: 127.0.0.11#53
Non-authoritative answer:
Name: google.com
Address: 64.233.165.139
Name: google.com
Address: 64.233.165.101
Name: google.com
Address: 64.233.165.102
Name: google.com
Address: 64.233.165.113
Name: google.com
Address: 64.233.165.100
Name: google.com
Address: 64.233.165.138
real 0m4.029s
user 0m0.008s
sys 0m0.004s
demonio.json:
{
"dns": ["188.93.16.19", "188.93.17.19", "8.8.8.8", "8.8.8.4"]
}
Respuesta1
Se resolvió el problema eliminando todos los servidores DNS excepto 8.8.8.8 de daemon.json. Este es el único servidor que resuelve el dominio rápidamente en mi caso. Probé diferentes servidores a través de docker run --dns=<dns server> <image name> curl -g 'google.com'
.
Respuesta2
Tuve este problema mientras usaba Docker-Compose. También fue un problema de DNS. Yo añadí:
services:
my_app:
dns:
- 8.8.8.8
- 4.4.4.4
A mi docker-compose.yml y solucionó el problema de rendimiento.
Respuesta3
Creo que está relacionado con el problema de la dirección MAC del puente como se describeaquí. Debe agregar una interfaz ficticia con una dirección MAC baja como esclava del puente.