debian下面的docker开通IPV6
博主的NAS是用debian搭建的,在里面安装了docker,准备把一些常用的应用迁移到docker里来,但是之前一直没有搞定docker里的ipv6,所以一直搁浅中,今天花了点时间研究,终于全部解决。写下这个教程,给新手避个坑。
环境如下:
- debian 11
- docker 20.10.18
准备工作:
- 保证路由器能正常获取ipv6地址----博主的路由器是OpenWRT,电信有给ipv6
- 去路由器里找到FD开头的ipv6地址,这种即是本地的ipv6
- 保证debian能正常获取ipv6地址----如果没有,请在/etc/network/interfaces的文档最后面,加上iface ens224 inet6 dhcp,注意ens224换成你自己的网卡的标识,然后重启一下debian
- 保证debian里的ipv6能正常访问----查看ipv6的网关:ip -6 route show,如果有:default via fe80::20c:29ff:fe0f:3032 dev ens224 metric 1 pref medium,类似这样的出现,说明ipv6一切正常。如果没有ipv6的网关,手动增加:route -A inet6 add default gw fe80::20c:29ff:fe0f:3032 dev ens224,如果不知道ipv6的网关是什么,用命令:ip -6 route show dev ens224查看
如果下次开机这个默认路由消失了,可以在/etc/network/interfaces的最后,添加一行
up route -A inet6 add default gw fe80::20c:29ff:fe0f:3032 dev ens224
这样开机时,自动启用这条路由。
Docker的ipv6配置:
一,用ssh登录debian,添加一个docker的ipv6配置
nano /etc/docker/daemon.json
内容为
{ "ipv6": true, "fixed-cidr-v6": "fd58:66:88::/48", "experimental": true, "ip6tables": true }
注意第二行,即是路由器里的本地ipv6地址前缀
二,重启docker
systemctl restart docker
docker应用配置
为了能让应用使用ipv6,所以尽量选择host的网络。