Docker 启用 IPV6 支持
参考官网文档
让 docker 默认的bridge网络支持 ipv6
- 修改 docker 配置文件
/etc/docker/daemon.json(使用 snap 安装的 docker 则在/var/snap/docker/current/config/daemon.json)
sudo vim /etc/docker/daemon.json写入:
{
"ipv6": true,
"fixed-cidr-v6": "2001:db8:1::/64"
}参数介绍
ipv6:在默认网络上启用IPv6网络。fixed-cidr-v6:将子网分配给默认网桥网络,启用动态IPv6地址分配。ip6tables:启用了额外的IPv6数据包过滤规则,提供网络隔离和端口映射。默认情况下,它是启用的,但可以禁用。
- 重新启动Docker守护程序,以便更改生效
sudo systemctl restart docker启动容器时不指定网络会使用默认的 bridge 网络,上述修改让 bridge 支持了 ipv6
让自定义网络支持 ipv6
默认创建的自定义网络是不支持 ipv6 的,可以在创建时指定参数来支持:
# 使用 `docker network create` 创建自定义网络
docker network create --ipv6 ip6net
# 使用 `docker network create` 指定IPv6子网:
docker network create --ipv6 --subnet 2001:db8::/64 ip6net或者你使用 docker compose,想在容器启动时自动创建一个支持 ipv6 的网络:
networks:
ip6net:
enable_ipv6: true
ipam:
config:
- subnet: 2001:db8::/64docker compose 创建的网络会增加一个 父目录名前缀