我运行了docker守护程序,将其与容器的全局IPv6一起使用:
docker daemon --ipv6 --fixed-cidr-v6="xxxx:xxxx:xxxx:xxxx::/64"
之后我运行了docker container:
docker run -d --name my-container some-image
它成功获得了全局IPv6地址(我通过docker inspect my-container
检查)。但我不能通过这个ip来ping我的容器:
Destination unreachable: Address unreachable
但我可以通过它的IPv6地址成功ping docker0
。
route -n -6
的输出包含下一行:
Destination Next Hop Flag Met Ref Use If
xxxx:xxxx:xxxx:xxxx::/64 :: U 256 0 0 docker0
xxxx:xxxx:xxxx:xxxx::/64 :: U 1024 0 0 docker0
fe80::/64 :: U 256 0 0 docker0
docker0
接口具有全局IPv6地址:
inet6 addr: xxxx:xxxx:xxxx:xxxx::1/64 Scope:Global
xxxx:xxxx:xxxx:xxxx::
到处都是一样的,它是eth0
接口的全球IPv6地址
docker是否需要通过IPv6访问我的容器的其他配置?
答案 0 :(得分:1)
你使用错误的ping命令。对于ipv6是ping6。
$ ping6 2607:f0d0:1002:51::4
答案 1 :(得分:1)
假设您的来宾操作系统中的IPv6配置正确,您可能不是从主机操作系统ping容器,而是在外部并且未配置网络发现协议。其他主机不知道您的容器是否落后于您的主机。我在使用IPv6启动容器后(在主机操作系统中)(在Systemd .service文件的ExecStartPost子句中)执行此操作
谨防IPv6:docker开发人员在回复错误报告时表示,他们没有足够的时间在1.10版本中准备好IPv6,并且对1.11一无所知。