请问 docker 如何让容器获得可以用的 ipv6 地址?

2019-08-31 12:32:10 +08:00
 powersee

我在网上也看来很多教程,说的都是

vi /etc/docker/daemon.json

然后添加

{
    "ipv6": true,
    "fixed-cidr-v6": "2001:db8:1::/64"
}

接着再重启,但是我这样试了,分配到的地址,用电脑 ping6 都 ping 不通。然后我看了下路由器的 ipv6,将前面四段替换掉配置里的这个,变为

"fixed-cidr-v6": "2409:8a55:f2d7:10e0::/64"

这是容器获得的地址是:

2409:8a55:f2d7:10e0:0:242:ac11:3

而刚才是:

2001:db8:1::0:242:ac11:3

依然都 ping 不通。

然后我用 docker 创建一个 Ubuntu 容器。在里面

ping6 ipv6.baidu.com

也是不行……

然而用电脑是可以的。

为此我又到服务器上面去试,结果还是一样,容器里面的 ipv6 根本就没法用。

特此才来发帖求助,求大佬解答,感激不尽。

2418 次点击
所在节点    问与答
1 条回复
qq296015668
2020-12-06 13:38:38 +08:00
$ vi /etc/docker/daemon.json
{
"ipv6": true,
"fixed-cidr-v6": "2001:db8:1::/64"
}
这里的部署是正确的,如果你想用 ipv6 nat 的话,添加下面一条命令就行
$ ip6tables -t nat -A POSTROUTING -s 2001:db8:1::/64 -j MASQUERADE
# 这里的 2001:db8:1::/64 地址是上面 /etc/docker/daemon.json 的 fixed-cidr-v6 内容,根据实际情况修改

这样你的容器就能访问 ipv6 地址了,这里的 2001:db8:1::/64 是内部地址,和 ipv4 一样,实际都是使用宿主的 ip 去访问的

我也是遇到这个问题然后搜索到这个提问,希望能帮到有需要的人

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/596726

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX