Un contenedor ventana acoplable de mina expone una interfaz HTTP en el puerto 8500, que se asigna a puerto host 8500. Se no activar IPv6. Esto todavía significa que debería poder acceder a él en localhost: 8500. Se prefiere IPv6, así que termino con una solicitud a [:: 1]: 8500. Este se atasca, nunca regresa.
Al reproducir esto con curl, este comando se atasca:
curl -g -6 "http://[::1]:8500"
La opción --verbose de curl no revela nada, tampoco lo hace --ascii-trace. Al mismo tiempo, una solicitud al localhost de IPv4 tiene éxito:
curl http://127.0.0.1:8500
dándome el HTML esperado. Si ejecuto un servidor HTTP IPv4 en loopback, usando
python -m SimpleHTTPServer 4001
entonces obtengo mucho HTML para el localhost de IPv4
curl http://127.1:4001
y una falla de conexión adecuada para IPv6:
curl -g -6 "http://[::1]:4001"
curl: (7) Failed to connect to ::1 port 4001: Connection refused
Cosas a tener en cuenta: Docker 1.7.1. IPv6 no está habilitado para el contenedor, por lo tanto, no hay reglas de IPv6 iptable. (ip6tables -v -L no da nada)
Mi pregunta es: ¿por qué la solicitud se atasca y qué hace?
tcp6 0 0 :::8500 :::* LISTEN 1648/docker
fascinante. ¿Por qué? ¿Y por qué está bloqueando?/proc/sys/net/ipv6/conf/all/disable_ipv6
produce 0, por lo que IPv6 debería estar habilitado.Respuestas:
Habilite ipv6 y reenvío ebable.
fuente