必须配置"ipv6": true和"fixed-cidr-v6": "你的IPv6子网/前缀长度"两项,缺一不可;推荐添加"ip6tables": true和"experimental": true以提升稳定性与功能完整性。
要在 docker 中启用 ipv6,核心是正确配置 /etc/docker/daemon.json 文件。这个文件控制 docker 守护进程的行为,ipv6 支持必须在这里显式开启,且需搭配合法地址段和可选增强项。
必须配置的两项基础参数
以下两个字段是启用 IPv6 的最低要求,缺一不可:
- "ipv6": true —— 全局开启 Docker 对 IPv6 的支持;不加此项,所有后续 IPv6 设置均无效。
-
"fixed-cidr-v6": "你的IPv6子网/前缀长度" —— 指定容器自动获取 IPv6 地址的范围。例如:
"fixed-cidr-v6": "2607:f0d0:1002:51::/66"(来自你服务器公网 IPv6 地址段)
或使用私有地址段:
"fixed-cidr-v6": "fd00:db8:1::/64"
⚠️ 注意:fixed-cidr-v6 不是随便填的测试地址(如 2001:db8::/64),生产环境务必用你实际获得的、可路由的 IPv6 子网,否则容器无法对外通信。
推荐添加的实用增强项
这些选项不是强制,但能显著提升 IPv6 网络稳定性与可控性:
使用 Python 脚本下载 Docker 镜像并打包为 tar 文件。用户说“下载镜像”“拉取镜像”“pull xxx”“帮我下载 nginx 镜像”等时触发。支持 SOCKS5 代理直连(推荐)和国内镜像站加速两种模式。
-
"ip6tables": true —— 启用 Docker 自动管理 IPv6 防火墙规则。若关闭,需手动配置
ip6tables才能实现 NAT、端口转发或跨网络通信。 -
"experimental": true —— 开启实验性功能,部分新版 IPv6 行为(如更细粒度的网络策略、
docker network inspect中的 IPv6 显示)依赖此开关。 -
"default-gateway-v6": "指定网关地址" —— 可选。用于自定义容器默认 IPv6 网关(如
"fd00:db8:1::ffff"),避免使用默认的::1,便于调试和统一策略。
完整示例(生产可用)
假设你从服务商获得的公网 IPv6 段是 2607:f0d0:1002:51::/64,可划分出 /66 子网供 Docker 使用:
{
"ipv6": true,
"fixed-cidr-v6": "2607:f0d0:1002:51::/66",
"ip6tables": true,
"experimental": true,
"default-gateway-v6": "2607:f0d0:1002:51::1"
}
保存后执行 sudo systemctl restart docker 生效。运行 ip -6 addr show docker0 应能看到该网段分配给桥接接口的地址。
常见错误提醒
- 配置后容器仍无 IPv6 地址?先确认宿主机已启用 IPv6(
sysctl net.ipv6.conf.all.disable_ipv6返回0),且网卡有 global scope 的 IPv6 地址。 - 报错
invalid CIDR address?检查fixed-cidr-v6格式是否符合标准(如末尾不能漏掉/64),且前缀长度合理(常用 /64、/66、/80)。 - Docker 重启失败?用
sudo dockerd --config-file /etc/docker/daemon.json --debug测试配置语法,定位 JSON 错误或冲突参数。

















