docker 启用 ipv6
🛠️ 立即解决方案
执行以下命令启用 Docker IPv6:
# 1. 停止所有运行的容器(避免冲突)
docker stop $(docker ps -q) 2>/dev/null
# 2. 创建 Docker IPv6 配置
sudo tee /etc/docker/daemon.json <<'EOF'
{
"ipv6": true,
"fixed-cidr-v6": "fd00:dead:beef::/64",
"ip6tables": true,
"experimental": true
}
EOF
# 3. 重启 Docker 服务
sudo systemctl restart docker
# 4. 等待几秒让服务完全启动
sleep 5
# 5. 验证配置
docker info | grep -A5 -B5 IPv6
✅ 验证 IPv6 是否真正启用
配置完成后,重新测试:
# 测试1:检查容器是否获得 IPv6 地址
docker run --rm -it alpine ip -6 addr show
# 测试2:检查 Docker 网络接口
ip addr show docker0
# 测试3:查看 IPv6 路由表
ip -6 route | grep docker
# 获取网关
ip -6 route show default
# 测试4:测试 IPv6 网络连通性
docker run --rm -it alpine ping6 -c 3 ipv6.google.com
📊 预期结果
启用成功后,您应该看到:
容器内:除了 ::1 外,还有 fd00:dead:beef::xxx/64 地址
docker0 接口:会有 fd00:dead:beef::1/64 地址
路由表:会有 fd00:dead:beef::/64 dev docker0 路由
如果获取不到网关,表示上级设备与当前系统有一个出问题了
我的问题是系统没有自动获取网关
给容器添加ipv6
在您的 docker-compose.yml 中添加或修改网络配置
services:
remnanode:
# 您的服务配置...
networks:
- node_network
networks:
node_network:
enable_ipv6: true
driver: bridge
ipam:
config:
- subnet: "fd00:dead:beef:2::/64" # 使用新的 IPv6 子网避免冲突
1. 通过 Netplan 系统配置(推荐)
这是 Ubuntu 的标准网络配置方式,重启后永久有效:
# 查看当前 netplan 配置
sudo cat /etc/netplan/50-cloud-init.yaml
# 编辑配置
sudo vim /etc/netplan/50-cloud-init.yaml
在配置文件中添加 IPv6 部分:
network:
version: 2
ethernets:
ens3:
dhcp4: true
dhcp6: true # 启用 DHCPv6 自动获取配置
accept-ra: true # 接受路由器通告
然后应用配置:
sudo netplan apply
最终验证
# 验证现有容器 IPv6
docker exec remnanode ip -6 addr show

浙公网安备 33010602011771号