Docker 컨테이너가 github 저장소를 가져올 수 없어 이름 확인이 실패합니다.

Docker 컨테이너가 github 저장소를 가져올 수 없어 이름 확인이 실패합니다.

나는 도커 버전 1.7을 사용하고 있습니다 centos-6.

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

문제는 /etc/resolv.conf파일에 ipv6 주소가 있는 네임서버가 포함되어 있으면 github에서 일부 저장소를 확인하거나 가져올 수 없다는 것입니다.

네임서버를 IPv4 주소로만 변경했더니 다시 작동했습니다.

이 문제에 대한 영구적인 해결책이 있습니까? Docker 버전을 업그레이드하면 이 문제를 해결할 수 있나요?

아니면 이 문제의 또 다른 근본 원인이 있습니까?

docker는 다음 명령으로 네트워크 설정을 확인합니다.

"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로만 구성합니다. --ipv6 플래그와 함께 Docker 데몬을 실행하여 IPv4/IPv6 듀얼 스택 지원을 활성화할 수 있습니다. Docker는 IPv6 링크 로컬 주소 fe80::1을 사용하여 브리지 docker0을 설정합니다.

기본적으로 생성된 컨테이너는 링크 로컬 IPv6 주소만 가져옵니다. 전역적으로 라우팅 가능한 IPv6 주소를 컨테이너에 할당하려면 해당 주소가 선택된 IPv6 서브넷을 지정해야 합니다. Docker 데몬을 시작할 때 --fixed-cidr-v6 매개변수를 사용하여 IPv6 서브넷을 설정합니다.

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

Docker 컨테이너의 서브넷 크기는 /80 이상이어야 합니다. 이렇게 하면 IPv6 주소가 컨테이너의 MAC 주소로 끝나고 Docker 계층에서 NDP 인접 캐시 무효화 문제를 방지할 수 있습니다.

--fixed-cidr-v6 매개변수를 설정하면 Docker는 라우팅 테이블에 새 경로를 추가합니다. 더 많은 IPv6 라우팅이 활성화됩니다.

관련 정보