Docker自定义网络给容器分配固定IP方法 Docker
前言
默认 bridge 网络里容器重启后 IP 会变,互相依赖的服务(如应用连数据库)容易连不上。创建自定义网络并指定固定 IP,可以让容器拥有稳定地址。本文讲解新建自定义网络、启动容器指定 IP、查看网络、容器互通的完整步骤。
操作步骤
1. 创建自定义网络并指定子网
docker network create --subnet 172.20.0.0/24 mynet
2. 启动容器并分配固定 IP
docker run -d --name db --network mynet --ip 172.20.0.10 mysql:8
3. 查看网络详情与已分配 IP
docker network inspect mynet
4. 另一个容器加入同一网络通信
docker run -d --name app --network mynet --ip 172.20.0.20 nginx
容器间可用容器名或固定 IP 互通。
5. 查看容器 IP
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' db
6. 把已有容器接入网络
docker network connect mynet db
常见坑
- 默认 bridge 不支持 --ip 固定,必须自定义网络。
- 固定 IP 与子网冲突或重复分配,容器启动失败。
- 不建议依赖固定 IP,推荐用容器名+DNS 互通。
- 子网与宿主机内网网段重叠导致路由冲突。
- Compose 里固定 IP 需在 networks 配置 subnet 和 ipv4_address。
- 固定 IP 方案不利于容器横向扩容。
- 容器删重建后固定 IP 要重新分配。
总结
固定 IP 靠自定义网络 + --subnet + --ip,适合少量需要稳定地址的容器。现代做法更推荐容器名 DNS 和服务发现,减少硬编码 IP。Compose 部署在 networks 段声明子网和地址,保持与命令行一致。
遇到问题加QQ23979811 协助处理