启用IPv6条件
安装Docker和docker-compose([链接登录后可见][链接登录后可见])
请确保宿主机已经有IPv6地址
你可以采用终端命令的方法来检测。输入以下命令:
代码登录后可见
如果返回值为0,说明IPv6已启用。如果返回值为1,则说明你那边的IPv6没启用,这个时候你就得使用排除法,检查你那面的网络情况了,比如路由器配置,防火墙什么的~
配置Docker网络
编辑 /etc/docker/daemon.json ,添加以下内容:(如果没有这个文件直接创建)
代码登录后可见
我们需要确定自己机器所在的IPv6地址段,想要知道很简单,直接输入查询IPv6路由表信息的命令:代码登录后可见 即可。可以看出它列出了NAS中所有IPv6网络路由信息,包括目标地址、掩码位、网关地址、优先级等。而我们需要的就是上图箭头所示的IPv6地址段(请记住是公网IPv6的,而不是下面的fe80开头的)。
代码登录后可见
这样就给docker默认的bridge网络启用了ipv6,注意此时只有使用bridge这个网络的容器才有ipv6
重启docker
代码登录后可见
查看docker网络IPv6状态
代码登录后可见
测试Docker的IPv6网络
代码登录后可见
能ping通谷歌且能正常看到返回的IPv6地址,即docker的IPv6网络表示正常。
通过docker安装qBittorrent
以下是我的qBittorrent的docker-compose的配置:
代码登录后可见
测试qBittorrent的IPv6网络是否正常:
代码登录后可见
若是已经安装qBittorrent的话,重新部署下,注意网络模式为: 代码登录后可见
通过这边就可以看到现在已经是支持双栈的了:
如果要使用纯IPv6,则:
下个种子测试,看到peer这里连接的就全部是ipv6地址了。
注意事项
IPv6端口不通,请确保正确配置防火墙,放行相应端口。
请确保docker 的版本大于等于20.10
此方法也可用于其他容器,请注意需要其他容器本身是支持IPv6的。