在 Docker 容器或群服务中使用 IPv6 之前,您需要在 Docker 守护进程中启用 IPv6 支持。之后,您可以选择对任何容器、服务或网络使用 IPv4 或 IPv6(或两者)
注意:IPv6 网络仅在 Linux 主机上运行的 Docker 守护程序上受支持。
编辑/etc/docker/daemon.json,将ipv6密钥设置为true和fixed-cidr-v6您的 IPv6 子网的密钥。在此示例中,我们将其设置为2607:f0d0:1002:51::/66
{ "experimental": true, "ipv6": true, "ip6tables": true, "fixed-cidr-v6": "2607:f0d0:1002:51::/66"
}
这里ip6tables是指由 Docker 自动配置 IPv6 的防火墙规则,如果你希望自己手动配置,请改为 false 或者移除此项,否则容器将无法连接 IPv6 网络;
fixed-cidr-v6 则是我们划分的子网段的第一个,fixed-cidr-v6将分配给默认的 docker 桥接网络,docker 0.


$ systemctl reload docker
执行命令docker network ls。除非您之前创建了自己的自定义网络,否则您将看到以下内容:
[root@localhost deploy]# docker network ls
NETWORK ID NAME DRIVER SCOPE
76c3482e860e bridge bridge local
ffc8043b2395 host host local
3ab57d30d24a monitoring bridge local
44d8fefb76f4 none null local
检查默认的 docker ‘bridge’ 网络docker network inspect bridge。您应该会看到列出了您选择的 IPv6 网络以及网关地址。
[root@localhost deploy]# docker network inspect bridge
[{"Name": "bridge","Id": "76c3482e860e7787f85da0892d9f2c6f967ceeb252a6dc7f789c923d02fc2f9e","Created": "2022-12-01T14:23:31.16878297+08:00","Scope": "local","Driver": "bridge","EnableIPv6": true,"IPAM": {"Driver": "default","Options": null,"Config": [{"Subnet": "172.17.0.0/16","Gateway": "172.17.0.1"},{"Subnet": "2607:f0d0:1002:51::/66","Gateway": "2607:f0d0:1002:51::1"}]},"Internal": false,"Attachable": false,"Ingress": false,"ConfigFrom": {"Network": ""},"ConfigOnly": false,"Containers": {},"Options": {"com.docker.network.bridge.default_bridge": "true","com.docker.network.bridge.enable_icc": "true","com.docker.network.bridge.enable_ip_masquerade": "true","com.docker.network.bridge.host_binding_ipv4": "0.0.0.0","com.docker.network.bridge.name": "docker0","com.docker.network.driver.mtu": "1500"},"Labels": {}}
]
networks: example: enable_ipv6: true driver: bridge driver_opts: com.docker.network.enable_ipv6: "true" ipam: config: - subnet: 172.23.0.0/16 - subnet: "2607:f0d0:1002:51:4000::/66" gateway:2607:f0d0:1002:51:4000::1
下一篇:8.跨域请求