
Estou usando o docker versão 1.7 em centos-6
:
docker --version
Docker version 1.7.1, build 786b29d/1.7.1
O problema é: quando de alguma forma o /etc/resolv.conf
arquivo contém servidores de nomes com endereços IPv6, ele não consegue resolver ou extrair alguns repositórios do github.
quando altero os servidores de nomes apenas para endereços IPv4, ele funciona novamente.
Existe alguma solução permanente para este problema? A atualização da versão do docker resolverá isso?
Ou existe alguma outra causa raiz deste problema?
As configurações de rede do comando docker inspecionam:
"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
},
no host, ipv6
está totalmente configurado e o comando ping6 funciona bem. mas dentro do contêiner vejo ipv6
campos em branco. Alguma razão pela qual não há ipv6 dentro do contêiner?
além disso :
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
Responder1
Você não está obtendo nenhum roteamento/funcionamento IPv6 dentro dos contêineres porque, como vimos, não há endereçamento IPv6 funcionando dentro deles, mas apenas no nível do host.
ConformeGuia do usuário IPv6 - rede - IPv6 com Docker
Por padrão, o servidor Docker configura a rede de contêineres apenas para IPv4. Você pode ativar o suporte a pilha dupla IPv4/IPv6 executando o daemon Docker com o sinalizador --ipv6. O Docker configurará a ponte docker0 com o endereço local de link IPv6 fe80::1.
Por padrão, os contêineres criados receberão apenas um endereço IPv6 local de link. Para atribuir endereços IPv6 globalmente roteáveis aos seus contêineres, você deve especificar uma sub-rede IPv6 para escolher os endereços. Defina a sub-rede IPv6 por meio do parâmetro --fixed-cidr-v6 ao iniciar o daemon do Docker:
dockerd --ipv6 --fixed-cidr-v6="2001:db8:1::/64"
A sub-rede para contêineres Docker deve ter pelo menos um tamanho de /80. Dessa forma, um endereço IPv6 pode terminar com o endereço MAC do contêiner e você evita problemas de invalidação de cache vizinho NDP na camada Docker.
Com o conjunto de parâmetros --fixed-cidr-v6, o Docker adicionará uma nova rota à tabela de roteamento. Mais roteamento IPv6 será habilitado