无法ping泊坞机IPv6容器

时间:2016-04-21 17:40:45

标签: docker ipv6

我运行了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 docker0route -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访问我的容器的其他配置?

2 个答案:

答案 0 :(得分:1)

你使用错误的ping命令。对于ipv6是ping6。

$ ping6 2607:f0d0:1002:51::4

答案 1 :(得分:1)

假设您的来宾操作系统中的IPv6配置正确,您可能不是从主机操作系统ping容器,而是在外部并且未配置网络发现协议。其他主机不知道您的容器是否落后于您的主机。我在使用IPv6启动容器后(在主机操作系统中)(在Systemd .service文件的ExecStartPost子句中)执行此操作

  1. / usr / sbin / sysctl net.ipv6.conf。 interface_name .proxy_ndp = 1
  2. / usr / bin / ip -6 neigh add proxy $(docker inspect --format {{.NetworkSettings.GlobalIPv6Address}} container_name )dev interface_name
  3. 谨防IPv6:docker开发人员在回复错误报告时表示,他们没有足够的时间在1.10版本中准备好IPv6,并且对1.11一无所知。