怎么在Docker容器中配置静态IP地址的详细方法

老辰大大_3444

老辰大大_3444

2026-04-02

652人浏览

原创

必须创建自定义 bridge 网络并指定子网,再通过 docker run --network --ip 分配静态 ip;已有容器可通过 network disconnect + connect --ip 间接配置;默认 bridge 网络不支持静态 ip。

怎么在docker容器中配置静态ip地址的详细方法

在 Docker 容器中配置静态 IP 地址,不能直接在容器内用 ifconfig 或 ip addr 临时设置(重启即失效),也不能靠 docker run --ip 对默认 bridge 网络使用——因为默认的 bridge 网络不支持静态 IP 分配。真正可行的方式是:创建自定义 bridge 网络并指定子网,然后在运行容器时通过 --ip 或 --ip6 显式指定 IP。

创建自定义 bridge 网络并预设子网

这是配置静态 IP 的前提。Docker 要求静态 IP 必须落在自定义网络的子网范围内,且未被其他容器占用。

  • 创建带固定子网的网络(例如 172.20.0.0/16):
docker network create --driver bridge \
  --subnet=172.20.0.0/16 \
  --gateway=172.20.0.1 \
  mynet
  • --subnet 必须指定,否则 --ip 会报错;
  • --gateway 可选,但建议指定,便于容器访问外网(需确保宿主机开启 IP 转发并配置 NAT);
  • 网络名(如 mynet)后续运行容器时要用到。

运行容器时指定静态 IPv4 地址

使用 docker run 启动时,通过 --network 和 --ip 组合绑定固定 IP:

docker run -d \
  --name mynginx \
  --network mynet \
  --ip 172.20.10.100 \
  -p 8080:80 \
  nginx
  • IP(如 172.20.10.100)必须属于 mynet 的子网范围;
  • 该 IP 不能已被其他容器占用,否则启动失败;
  • 容器内无需额外配置,Docker 会在初始化网络时自动注入;
  • 可通过 docker exec mynginx ip addr show eth0 验证是否生效。

为已有容器“补配”静态 IP(不推荐,仅限调试)

Docker 不支持直接修改运行中容器的 IP。但可借助网络重连方式间接实现(本质是断开再连入指定 IP):

  • 先断开容器与当前网络的连接(若已连):
docker network disconnect bridge mynginx
  • 再连接到自定义网络并指定 IP:
docker network connect --ip 172.20.10.100 mynet mynginx
  • 注意:此操作要求容器已停止或正在运行,但部分应用可能因网络中断短暂异常;
  • 该 IP 必须未被占用,且目标网络(mynet)已存在并含对应子网;
  • 不适用于默认 bridge 网络,仅对自定义 bridge 有效。

验证与排错要点

配置后务必检查关键环节,避免“看似成功实则不通”:

  • 确认容器 IP 正确:docker inspect mynginx | grep IPAddress 或进入容器执行 hostname -I;
  • 检查网络路由:docker exec mynginx ip route,应有指向 172.20.0.1 的默认路由;
  • 测试连通性:从容器 ping 网关(ping 172.20.0.1)、宿主机、其他同网段容器;
  • 若无法访问外网,检查宿主机是否启用转发:sysctl net.ipv4.ip_forward 应为 1,并确认 Docker daemon 未禁用 iptables;
  • 防火墙(如 ufw、firewalld)可能拦截跨网络流量,临时关闭可辅助定位。
PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
504 gateway timeout怎么解决
504 gateway timeout怎么解决

504 gateway timeout的解决办法:1、检查服务器负载;2、优化查询和代码;3、增加超时限制;4、检查代理服务器;5、检查网络连接;6、使用负载均衡;7、监控和日志;8、故障排除;9、增加缓存;10、分析请求。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.11.27

754

4

default gateway怎么配置
default gateway怎么配置

配置default gateway的步骤:1、了解网络环境;2、获取路由器IP地址;3、登录路由器管理界面;4、找到并配置WAN口设置;5、配置默认网关;6、保存设置并退出;7、检查网络连接是否正常。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.12.07

357

5

k8s和docker区别
k8s和docker区别

k8s和docker区别有抽象层次不同、管理范围不同、功能不同、应用程序生命周期管理不同、缩放能力不同、高可用性等等区别。本专题为大家提供k8s和docker区别相关的各种文章、以及下载和课程。

2023.07.24

705

4

docker进入容器的方法有哪些
docker进入容器的方法有哪些

docker进入容器的方法:1. Docker exec;2. Docker attach;3. Docker run --interactive --tty;4. Docker ps -a;5. 使用 Docker Compose。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.04.08

5259

6

docker容器无法访问外部网络怎么办
docker容器无法访问外部网络怎么办

docker 容器无法访问外部网络的原因和解决方法:配置 nat 端口映射以将容器端口映射到主机端口。根据主机兼容性选择正确的网络驱动(如 host 或 overlay)。允许容器端口通过主机的防火墙。配置容器的正确 dns 服务器。选择正确的容器网络模式。排除主机网络问题,如防火墙或连接问题。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.04.08

6237

6

docker镜像有什么用
docker镜像有什么用

docker 镜像是预构建的软件组件,用途广泛,包括:应用程序部署:简化部署,提高移植性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.04.08

2393

7

Docker容器化部署与DevOps实践
Docker容器化部署与DevOps实践

本专题面向后端与运维开发者,系统讲解 Docker 容器化技术在实际项目中的应用。内容涵盖 Docker 镜像构建、容器运行机制、Docker Compose 多服务编排,以及在 DevOps 流程中的持续集成与持续部署实践。通过真实场景演示,帮助开发者实现应用的快速部署、环境一致性与运维自动化。

2026.02.11

259

16

Docker 容器部署
Docker 容器部署

本专题整合了Docker容器部署相关内容,阅读专题下面的文章了解更多详细操作教程。

2026.03.31

451

14

Java容器化部署与Docker实践教程合集
Java容器化部署与Docker实践教程合集

聚焦 Java 应用的容器化与云原生部署,讲解 Dockerfile 编写规范与 Java 应用镜像构建、多阶段构建(Multi-stage Build)减小镜像体积、Jib / Buildpacks 免 Dockerfile 镜像构建方案、JVM 容器感知参数(-XX:MaxRAMPercentage)配置、Docker Compose 编排多服务(应用 + MySQL + Redis)、容器健康检查与资源限制、Kubernetes

2026.05.11

400

26

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.6万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 133.4万人学习