由于服务需要访问 IPv6 网络,且不需要接受外部连接,同时为了安全性考虑,选择了 NAT IPv6 , 共享主机的 v6 公网地址出口
修改 /etc/docker/daemon.json
(如没有直接创建)
{
"ipv6": true,
"fixed-cidr-v6": "fd00::/80"
}
主机上需要开 v6 转发和做 Masquerade(不做NAT可以忽略这步):
echo "net.ipv6.conf.all.forwarding = 1" >> /etc/sysctl.conf
sysctl -p
ip6tables -t nat -I POSTROUTING -j MASQUERADE
随后重启 docker 服务即可。
service docker restart
2023年更新:如果使用 Docker Compose,示例 docker-compose.yaml
如下:
version: '2.4' # 或更高版本
services:
myservice:
image: myimage
networks:
- mynetwork
networks:
mynetwork:
enable_ipv6: true
driver: bridge
ipam:
driver: default
config:
- subnet: 2001:db8:1::/64