El contenedor Docker no puede extraer el repositorio de github, la resolución del nombre falla

El contenedor Docker no puede extraer el repositorio de github, la resolución del nombre falla

Estoy usando la versión 1.7 de Docker en centos-6:

docker --version
Docker version 1.7.1, build 786b29d/1.7.1

El problema es: cuando de alguna manera el /etc/resolv.confarchivo contiene servidores de nombres con direcciones ipv6, no puede resolver ni extraer algunos repositorios de github.

cuando cambio los servidores de nombres a direcciones IPv4 únicamente, vuelve a funcionar.

¿Existe alguna solución permanente a este problema? ¿La actualización de la versión de Docker lo solucionará?

¿O hay alguna otra causa raíz de este problema?

La configuración de red del comando Docker Inspect:

"NetworkSettings": {
    "Bridge": "",
    "EndpointID": "db30701ee55cf8f6b8c9fe42c820434648ed6cca5ca863c60e098f9d4ad825a3",
    "Gateway": "172.17.42.1",
    "GlobalIPv6Address": "",
    "GlobalIPv6PrefixLen": 0,
    "HairpinMode": false,
    "IPAddress": "172.17.0.8",
    "IPPrefixLen": 16,
    "IPv6Gateway": "",
    "LinkLocalIPv6Address": "",
    "LinkLocalIPv6PrefixLen": 0,
    "MacAddress": "02:42:ac:11:00:08",
    "NetworkID": "db3910e86d7f291d5586c23895a67a1140e638afcdbbf5a6b60e10c9bbb85762",
    "PortMapping": null,
    "Ports": {},
    "SandboxKey": "/var/run/docker/netns/4273c53a95b2",
    "SecondaryIPAddresses": null,
    "SecondaryIPv6Addresses": null
},

en el host, ipv6está completamente configurado y el comando ping6 funciona bien. pero dentro del contenedor veo ipv6campos en blanco. ¿Alguna razón por la que no hay ipv6 dentro del contenedor?

además :

curl -g 'http://[2400:fc00:854a:aaaa:700d:d110:e593:8d00]'
curl: (7) Failed to connect to 2400:fc00:854a:aaaa:700d:d110:e593:8d00: Network is unreachable

Respuesta1

No obtiene ningún enrutamiento/funcionamiento IPv6 dentro de los contenedores porque, como lo hemos visto, no hay ningún direccionamiento IPv6 funcionando dentro de ellos, sino solo a nivel de host.

Según elGuía del usuario de IPv6 - redes - IPv6 con Docker

De forma predeterminada, el servidor Docker configura la red de contenedores solo para IPv4. Puede habilitar la compatibilidad con IPv4/IPv6 dualstack ejecutando el demonio Docker con el indicador --ipv6. Docker configurará el puente docker0 con la dirección local de enlace IPv6 fe80::1.

De forma predeterminada, los contenedores que se crean solo obtendrán una dirección IPv6 de enlace local. Para asignar direcciones IPv6 enrutables globalmente a sus contenedores, debe especificar una subred IPv6 para elegir las direcciones. Configure la subred IPv6 mediante el parámetro --fixed-cidr-v6 al iniciar el demonio Docker:

dockerd --ipv6 --fixed-cidr-v6="2001:db8:1::/64"

La subred para contenedores Docker debe tener al menos un tamaño de /80. De esta manera, una dirección IPv6 puede terminar con la dirección MAC del contenedor y se evitan problemas de invalidación de la caché del vecino NDP en la capa Docker.

Con el conjunto de parámetros --fixed-cidr-v6, Docker agregará una nueva ruta a la tabla de enrutamiento. Se habilitará más enrutamiento IPv6

información relacionada