无法ping通docker的IPv6容器
我运行了docker守护进程,将其与全局IPv6一起用于容器:
docker daemon --ipv6 --fixed-cidr-v6="xxxx:xxxx:xxxx:xxxx::/64"
之后,我跑docker集装箱:
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::
everywhere是相同的,它是我的eth0
接口的全局IPv6地址
docker需要额外的configuration通过IPv6访问我的容器?
MB你使用错误的ping命令。 对于ipv6是ping6。
$ ping6 2607:f0d0:1002:51::4
假设您的客户操作系统中的IPv6configuration正确,可能是您不是从主机操作系统ping容器,而是外部和networking发现协议未configuration。 其他主机不知道你的容器是否在主机的后面。 我在启动容器与IPv6(在主机操作系统)后(在Systemd .service文件的ExecStartPost子句中)
- / usr / sbin / sysctl net.ipv6.conf。 interface_name .proxy_ndp = 1
- / usr / bin / ip -6 neigh add proxy $(docker inspect –format {{.NetworkSettings.GlobalIPv6Address}} container_name )dev interface_name “
小心IPv6:docker开发人员在回复错误报告时说,他们没有足够的时间在版本1.10中做好IPv6生产准备,对于1.11没有提及。