docker如何开启ipv6
时间: 2025-02-05 13:46:47 浏览: 90
### 如何在 Docker 中启用并配置 IPv6 支持
为了使 Docker 容器能够支持 IPv6,需对主机上的 Docker 进行特定设置。这涉及到修改 Docker 的守护程序配置文件以及重启服务来应用更改。
#### 修改 Docker 配置文件
编辑 `/etc/docker/daemon.json` 文件,在其中添加关于 `ipv6` 和 `fixed-cidr-v6` 的条目:
```json
{
"ipv6": true,
"fixed-cidr-v6": "2001:db8:1::/64"
}
```
上述 JSON 片段中的 `"ipv6"` 键设为 `true` 表明启用了 IPv6 功能;而 `"fixed-cidr-v6"` 则指定了用于分配给容器的一个固定的 IPv6 地址范围[^1]。
#### 重新启动 Docker 服务
完成配置文件更新之后,通过执行如下命令让改动生效:
```bash
sudo systemctl restart docker
```
此操作会重启 Docker 守护进程并将新设定应用于所有后续创建的容器中。
#### 创建带有 IPv6 支持的网络
对于希望利用 IPv6 协议通信的新建容器而言,应该将其连接到具有相应属性定义好的自定义桥接网路之上。可以通过下面的方式建立一个新的覆盖层 (overlay) 或者桥梁 (bridge) 类型的网络,并指定其具备双栈能力(即同时兼容 IPv4 及 IPv6):
```bash
docker network create \
--driver=bridge \
--subnet=fd00:cafe:babe::/48 \
--ipam-driver=default \
my_custom_network
```
这里 `-subnet` 参数后面跟的是一个唯一的全局单播地址前缀,用来标识该虚拟子网上面所有的 IP 资源归属关系。注意这里的例子采用 ULA (Unique Local Address),实际部署时可根据需求调整具体的数值[^3]。
#### 将现有容器迁移到新的 IPv6 网络下
假设已经有一个名为 `mycontainer` 的实例正在运行,则可以借助于 `docker network connect` 命令把它附加至之前所构建出来的特殊环境里去:
```bash
docker network connect my_custom_network mycontainer
```
一旦成功关联上了目标网络空间,便意味着这个容器获得了访问外部世界的能力——无论是基于传统的 IPv4 方式还是现代化的 IPv6 接口形式。
阅读全文
相关推荐


















