Docker 网络入门:bridge / host / none 三种模式怎么选

举报
yd_284028467 发表于 2026/11/05 08:12:29 2026/11/05
【摘要】 Docker 网络入门:bridge / host / none 三种模式怎么选容器能跑起来,不代表网络就通了。很多人第一次遇到「容器内服务访问不了」「端口映射不上」的问题,根源都在网络模式没选对。这篇文章把 Docker 的三种基础网络模式讲清楚,并给出实际选择建议。一、为什么容器要单独考虑网络容器默认是隔离的:有自己的网卡、IP、路由表和 iptables 规则。这种隔离带来安全性,也带...

Docker 网络入门:bridge / host / none 三种模式怎么选

容器能跑起来,不代表网络就通了。很多人第一次遇到「容器内服务访问不了」「端口映射不上」的问题,根源都在网络模式没选对。这篇文章把 Docker 的三种基础网络模式讲清楚,并给出实际选择建议。

一、为什么容器要单独考虑网络

容器默认是隔离的:有自己的网卡、IP、路由表和 iptables 规则。这种隔离带来安全性,也带来「外部怎么访问进来」「容器之间怎么通信」两个问题。Docker 的网络模式,本质上就是在决定这两点。

二、三种基础网络模式

1. bridge(默认)

最常用。Docker 创建一个虚拟网桥 docker0,每个容器接入一个独立的 veth 网卡,分配 172.17.0.x 网段的 IP。

特点: - 容器之间可以互相访问(同桥接网络内)。 - 外部不能直接访问容器端口,需要 -p 宿主机端口:容器端口 做端口映射。 - 映射本质是 iptables 的 DNAT 规则,不是真正的「端口转发进程」。

典型用法:docker run -p 8080:80 nginx

2. host

容器直接使用宿主机的网络栈,没有自己的网卡,也没有端口映射的概念。

特点: - 性能最好(少了一层 NAT)。 - 端口直接占用宿主机,适合需要低延迟、或依赖宿主机特定端口的服务。 - 代价是隔离性最差,容器能看到宿主机全部端口。

典型用法:docker run --network host redis

3. none

容器只有 lo 回环接口,完全断网。

特点: - 适合纯计算任务、批处理、或对安全要求极高、只靠共享卷传数据的场景。 - 调试时很不方便,需要手动 docker exec 进去配置。

典型用法:docker run --network none <image>

三、实际怎么选

场景 推荐模式 理由
Web 服务、需要对外暴露 bridge + -p 隔离好,端口可控
内部微服务互调 bridge(自定义网络) 用容器名做 DNS,避免 IP 硬编码
高性能、低延迟服务 host 省掉 NAT 开销
离线计算、安全隔离 none 网络完全不可达

一个容易被忽略的点:自定义 bridge 网络比默认 bridge 更值得用。默认网络下容器只能用 IP 互相访问,而 docker network create app 创建的网络支持按容器名解析,扩容时不用改配置。

四、常用排查命令

  • docker network ls:看有哪些网络。
  • docker network inspect bridge:看网段、接入的容器。
  • docker inspect <容器>:看容器实际用的网络模式和 IP。
  • 容器内:ip addr、ip route、cat /etc/resolv.conf。

常见现象:容器能 Ping 通网关但 Ping 不通外网,多半是宿主机防火墙(ufw/firewalld)拦了 docker0 的流量,加规则放行即可。

五、实用技巧与注意事项

  1. 需要容器间通信时,务必把它们放在同一个自定义网络上,别依赖默认网络。
  2. 端口映射不要用 80:80 这种宿主机特权端口的写法去抢系统已占用的端口,会直接启动失败。
  3. 生产环境慎用 host 模式:一旦容器被入侵,等于宿主机网络被接管。
  4. 改网络模式要重建容器(docker rm 后重新 run),docker network connect 只能事后挂接。
  5. 排查「连不上」时,先看 docker inspect 确认模式,再看安全组和防火墙,最后才怀疑应用本身。

选对网络模式,容器相关的连接问题能少一大半。建议在写 docker-compose 之前就把每个服务需要暴露的端口和网络想清楚,比事后救火省力得多。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。