DockerIPv6⽹络环境配置
由于⽬前Docker 在IPv6⽹络中运⾏的相关配置并⾮默认⾃动⽣成的,所以需要⼤家根据⾃⼰的⽹络环境来具体做⼀些相应配置,具体如下:
本次操作是在 Ubuntu16/18或者CentOS7 OS上⾯通过docker官⽹⼿册安装⽅式安装的Docker程序
第⼀步在 docker 配置⽂件添加IPv6配置参数
配置⽂件路径均为/etc/docker/daemon.json
如果改⽂件不存在,请直接创建
如果docker运⾏的寄主机已经成功获取到IPv6公⽹地址并能够正常访问IPv6公⽹资源后,还不知道怎么给docker分配对应的IPv6地址,
则可直接将 docker 的默认IPv6⽹段设置为 fc00:17:1:1::/64 (可以理解为IPv6的内⽹地址)
{
"ipv6": true,
"fixed-cidr-v6": "fc00:17:1:1::/64"
}
之后需要⼿动对刚才的IPv6内⽹地址设置NAT转换(因为docker 在IPv4的环境下会⾃动将内⽹地址做NAT转换)
并通过 -L 来查看NAT配置是否添加成功
ip6tables -t nat -A POSTROUTING -s fc00:17:1:1::/64 -j MASQUERADE
ip6tables -t nat -L
最后重新启动 docker 服务
systemctl restart docker
效果如下:
经过上述配置后,通过docker run ⽅式启动(利⽤默认的bridge⽹络模式)的容器即可⾃动获取到fc00:1:1::/64 ⽹段中的IPv6地址。
并能够继承Host寄主机的⽹络资源环境。
如果你想使⽤ docker-compose 的⽅式来启动⼀组容器的话,那还需要对之前使⽤的 l ⽂件进⾏部分升级,具体如下:
⾸先,compose的版本需要使⽤
version: '2.1'
然后在每⼀个services中添加⽹络参数(举例存在⼀个名为 app_net 的⽹络)
networks:
app_net:
之后在yml⽂件的最后添加 app_net 这个⽹络的具体参数:
networks:
app_net:
driver: bridge
enable_ipv6: true
ipam:
driver: default
config:
- subnet: 172.19.0.0/24
gateway: 172.19.0.1
- subnet: fc00:32:1:1::/120
gateway: fc00:32:1:1::1
ubuntu网络配置其中给这个⽹络分配的IPv6⽹段是 fc00:32:1:1::/120 (不要与之前deamon.json中的⽹段有重合),/120⽹段可以提供 256个的可⽤地址
然后把这个IPv6内⽹地址段(fc00:32:1:1::/120)利⽤  ip6tables -t nat 的指令(同上)将该地址段成功添加到host 寄主机中的 IPv6 nat配置中即可
之后再⽤ ip6tables -t nat -L  查看是否添加成功
最后利⽤访问⼀些公⽹的IPv6地址来测试⽹络是否搭建成功即可。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。