Контейнер Docker не может извлечь репозиторий github, разрешение имен не удается

Контейнер Docker не может извлечь репозиторий github, разрешение имен не удается

Я использую Docker версии 1.7 на centos-6:

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

Проблема в следующем: если /etc/resolv.confфайл каким-то образом содержит серверы имен с адресами IPv6, то он не может разрешить или извлечь некоторые репозитории из GitHub.

когда я меняю серверы имен только на адреса IPv4, все снова работает.

Есть ли постоянное решение этой проблемы? Обновление версии докера исправит ее?

Или есть какая-то другая причина этой проблемы?

Сетевые настройки команды 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
},

на хосте ipv6полностью настроен и команда ping6 работает нормально. но внутри контейнера я вижу ipv6пустые поля. Есть ли причина, по которой внутри контейнера нет ipv6?

более того :

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

решение1

Внутри контейнеров не работает маршрутизация/работа IPv6, поскольку, как мы видели, внутри них не работает адресация IPv6, а только на уровне хоста.

В соответствии сРуководство пользователя IPv6 — сетевое взаимодействие — IPv6 с Docker

По умолчанию сервер Docker настраивает сеть контейнера только для IPv4. Вы можете включить поддержку двойного стека IPv4/IPv6, запустив демон Docker с флагом --ipv6. Docker настроит мост docker0 с локальным адресом IPv6-канала fe80::1.

По умолчанию созданные контейнеры получат только локальный адрес IPv6. Чтобы назначить глобально маршрутизируемые адреса IPv6 вашим контейнерам, вам необходимо указать подсеть IPv6, из которой будут выбираться адреса. Задайте подсеть IPv6 с помощью параметра --fixed-cidr-v6 при запуске демона Docker:

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

Подсеть для контейнеров Docker должна иметь размер не менее /80. Таким образом, адрес IPv6 может заканчиваться MAC-адресом контейнера, и вы предотвратите проблемы с недействительностью кэша соседей NDP на уровне Docker.

С установленным параметром --fixed-cidr-v6 Docker добавит новый маршрут в таблицу маршрутизации. Дальнейшая маршрутизация IPv6 будет включена

Связанный контент