«

Docker自定义网络给容器分配固定IP方法

时间:2026-11-14 07:18     作者:emer     分类: 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

常见坑

  1. 默认 bridge 不支持 --ip 固定,必须自定义网络。
  2. 固定 IP 与子网冲突或重复分配,容器启动失败。
  3. 不建议依赖固定 IP,推荐用容器名+DNS 互通。
  4. 子网与宿主机内网网段重叠导致路由冲突。
  5. Compose 里固定 IP 需在 networks 配置 subnet 和 ipv4_address。
  6. 固定 IP 方案不利于容器横向扩容。
  7. 容器删重建后固定 IP 要重新分配。

总结

固定 IP 靠自定义网络 + --subnet + --ip,适合少量需要稳定地址的容器。现代做法更推荐容器名 DNS 和服务发现,减少硬编码 IP。Compose 部署在 networks 段声明子网和地址,保持与命令行一致。

遇到问题加QQ23979811 协助处理

标签: Docker bridge 固定IP 自定义网络