吃透Docker网络不用愁!四大核心模式

admin 2026-01-27 00:34:48 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 文章用通俗语言拆解Docker四大网络模式:Bridge默认单主机互通,自定义Bridge可解析容器名;Host共享宿主机网络,性能最高但端口冲突;Overlay借VXLAN隧道实现跨主机集群通信;None完全断网,适合离线或高安全场景。给出命令速查与Web+DB、Swarm集群两套实战模板,强调按场景选型即可。 综合评分: 82 文章分类: 云安全,安全建设,安全工具,WEB安全,安全培训


cover_image

吃透Docker网络不用愁!四大核心模式

原创

小柳实验室 小柳实验室

小柳实验室

2026年1月26日 14:52 湖南

Docker把应用变成了可随便拼的“积木”,但想让这些积木互联互通、对接外网,甚至跨服务器协作,网络配置才是关键。

很多人用Docker卡壳,不是不会打包镜像,而是搞不懂网络模式——明明启动了容器,却连不上数据库;想跨主机部署,容器之间又互访失败。

今天就用大白话,把Docker四大核心网络模式(Bridge/Host/Overlay/None)讲透,每个模式都配实操步骤,新手也能跟着做,看完直接上手用!


一、先搞懂:Docker网络的核心逻辑

其实Docker网络的本质,就是给每个容器“划独立网络地盘”,这个地盘叫网络命名空间

简单说,每个容器都有自己的“专属网卡、IP地址、路由表”,就像每家每户有独立门牌号和围墙,互相不干扰。Docker再通过虚拟网桥、虚拟网卡这些“工具”,打通容器之间、容器和外网的通道。

先记一个基础命令,查看当前Docker有哪些网络:

docker network ls

执行后会看到3个默认网络,这就是我们今天的主角:

NETWORK ID     NAME      DRIVER    SCOPE
b32d6b8a5f43   bridge    bridge    local  # 默认桥接网络
7d1e8d7c4a1d   host      host      local  # 主机网络
ee4c62b16a32   none      null      local  # 无网络

二、Bridge模式:Docker默认的“常规操作”

这是Docker启动容器时的默认模式,也是最常用的场景,适合单台服务器上的多容器互联。

1. 到底啥是Bridge模式?

宿主机会自动建一个叫docker0的“虚拟网桥”,就像小区里的总交换机。所有没指定网络的容器,都会自动连到这个交换机上,从这里拿一个私有IP,还能通过交换机访问外网。

拓扑图一看就懂:

+------------------------+
|   宿主机(你的服务器)  |
|                        |
|  +-----------------+   |
|  | docker0 网桥    |---|--- 连外网(NAT转发)
|  +---+---------+---+   |
|      |         |       |
|  [虚拟网卡] [虚拟网卡]  |  一头连网桥,一头连容器
|    |           |       |
|  容器A       容器B     |
+------------------------+

2. 实操:启动容器+测试通信

先启动两个Nginx容器,默认就用Bridge网络:

# 启动web1容器
docker run -d --name web1 nginx
# 启动web2容器
docker run -d --name web2 nginx

这里有个小坑:默认Bridge网络里,容器之间不能用名字访问,只能用IP。所以先查IP再测试:

# 第一步:查web2的IP地址
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' web2
# 第二步:进入web1,ping web2的IP(比如查到是172.17.0.3)
docker exec -it web1 ping 172.17.0.3

能ping通就说明通信正常了。

3. 推荐玩法:自定义Bridge网络(必学)

默认Bridge的“不能用名字访问”太麻烦,自定义Bridge完美解决这个问题,还能更好地隔离环境,生产环境优先用!

# 1. 新建一个自定义Bridge网络(叫mydocker网)
docker network create mydocker

# 2. 启动容器时,指定加入这个网络
docker run -d --name app1 --network mydocker nginx
docker run -d --name app2 --network mydocker busybox sleep 3600

# 3. 测试:直接用容器名ping,不用记IP!
docker exec -it app1 ping app2

搞定!自定义网络会自动帮你解析容器名,多容器协作再也不用死记IP了。


三、Host模式:追求极致性能的“直连方案”

如果你的服务对网络速度要求极高,比如监控代理、VPN,就可以用Host模式。

1. 核心逻辑

Host模式下,容器不搞独立网络地盘了,直接“借用”宿主机的网络——容器的IP、端口和宿主机完全共用,没有任何转发损耗,性能拉满。

打个比方:Bridge模式是容器有自己的小房间,Host模式就是容器直接住客厅,和宿主机共享所有网络资源。

2. 优缺点一眼看清

✅ 优点:性能最好,配置简单,不用做端口映射 ❌ 缺点:隔离性差,容器和宿主机端口会冲突(比如容器用80端口,宿主机的Nginx就不能用80了)

3. 实操示例

# 启动Host模式的Nginx容器
docker run -d --name web-host --network host nginx

启动后,直接在浏览器输宿主机IP就能访问容器里的Nginx,不用加任何端口号。注意:这种模式下,-p端口映射命令是无效的。


四、Overlay模式:跨服务器通信的“神器”

如果你的容器要部署在多台服务器上(比如搭建Docker集群),Bridge模式就不够用了——不同服务器的容器不在一个网段,没法直接通信。

Overlay模式就是来解决这个问题的,它能在多台服务器之间搭一条“虚拟隧道”,让所有服务器的容器,像在同一台机器上一样互通。

1. 核心逻辑

基于VXLAN技术,把容器之间的通信数据打包,通过服务器的物理网络传输,最终实现“跨主机容器在同一虚拟子网”的效果。

简单拓扑图:

服务器A(Node1)            服务器B(Node2)
+-------------+            +-------------+
| 容器A &nbsp; &nbsp; &nbsp; |<---------->| 容器B &nbsp; &nbsp; &nbsp; |
|(10.0.0.2) | &nbsp; 虚拟隧道 &nbsp;|(10.0.0.3) |
+-------------+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;+-------------+

2. 实操步骤(需启用Swarm集群)

Overlay网络需要依托Docker Swarm集群,步骤很简单:

# 1. 初始化Swarm集群(在主服务器执行,替换成你的服务器IP)
docker swarm init --advertise-addr 你的服务器IP

# 2. 新建Overlay网络(叫my-cluster-net)
docker network create -d overlay my-cluster-net

# 3. 启动集群服务,自动加入Overlay网络(3个副本)
docker service create --name web-cluster --network my-cluster-net --replicas 3 nginx

这样一来,不管容器分布在服务器A还是服务器B,都能互相访问,扩缩容也不影响通信。


五、None模式:完全隔离的“离线方案”

这种模式最简单,也最特殊——容器启动后,完全断开所有网络,只保留本地回环接口,既不能访问外网,也不能被其他容器访问。

实操示例

# 启动None模式容器,执行离线任务
docker run -d --name offline-task --network none alpine&nbsp;sleep&nbsp;3600

适用场景

  • • 离线数据处理、日志分析(不用联网也能跑)
  • • 高安全需求(彻底隔离网络,避免被攻击)
  • • 需要手动配置特殊网络的场景

六、四大模式对比表(快速选型)

怕记混?直接看这张表,按需选就行:

| 模式 | 隔离性 | 共享宿主机网络 | 支持容器名解析 | 跨主机 | 适用场景 | | — | — | — | — | — | — | | Bridge | 好 | 不共享 | 自定义网络支持 | 不支持 | 本地开发、单服务器多容器互联 | | Host | 差 | 完全共享 | 不支持 | 不支持 | 高性能服务、监控代理 | | Overlay | 好 | 不共享 | 支持 | 支持 | 集群部署、跨服务器通信 | | None | 极致好 | 不共享 | 不支持 | 不支持 | 离线任务、高安全需求 |


七、常用命令速查(收藏备用)

| 操作需求 | 命令 | | — | — | | 查看所有网络 | docker network ls | | 查看网络详情(排错用) | docker network inspect 网络名/ID | | 新建自定义网络 | docker network create 网络名 | | 删除无用网络 | docker network rm 网络名/ID | | 给容器绑定网络 | docker network connect 网络名 容器名 | | 给容器解绑网络 | docker network disconnect 网络名 容器名 |


八、实战场景:直接套用

1. 本地部署Web+数据库(最常用)

需求:Web容器访问MySQL容器,不用记IP,环境隔离。

# 1. 新建自定义网络
docker network create app-net

# 2. 启动MySQL容器(加入网络,设密码)
docker run -d --name mysql --network app-net -e MYSQL_ROOT_PASSWORD=123456 mysql:8.0

# 3. 启动Web容器(加入网络,通过容器名访问MySQL)
docker run -d --name web --network app-net -e DB_HOST=mysql nginx

2. 跨服务器集群部署

需求:多服务器容器互通,支持动态扩缩容。

# 1. 所有服务器加入Swarm集群(主服务器init,其他服务器join)
# 2. 新建Overlay网络
docker network create -d overlay global-net

# 3. 启动全局服务,所有服务器各部署一个实例
docker service create --name app-global --network global-net --mode global nginx

九、总结+最佳实践

  1. 1. 本地开发/单服务器:优先用自定义Bridge网络,兼顾易用性和隔离性;
  2. 2. 追求极致性能:用Host网络,但一定要提前规划端口,避免冲突;
  3. 3. 多服务器集群:用Overlay网络,搭配Swarm/K8s实现无缝通信;
  4. 4. 离线/高安全:用None网络,减少不必要的网络暴露。

其实Docker网络不用死记硬背,核心就是“按场景选模式”——记住每个模式的适用场景,再结合实操练一遍,很快就能熟练掌握。

📬 关注我

推荐阅读

Redis主从复制深度解析:数据高可用与负载均衡的核心方案

运维必备|Zabbix 从 0 到 1 搭建企业级监控,告警自动喊你处理!

15分钟搞定业务宕机!运维必备排查指南(附实操命令)

SCP 与 rsync 到底怎么选?运维老鸟的文件传输避坑指南

效率拉满!Docker+Nginx 一站式部署 Java(JAR/WAR 通用),运维再也不加班

别再搞混Nginx和OpenResty!90%运维都踩过的坑,一文讲透核心差异

开发运维必备神器!HexHub 一站式搞定数据库、SSH、Docker 所有需求

网络排查神器!掌握 tcpdump,让网络故障无处遁形

MySQL 与 PostgreSQL:两个老对手的技术对决与选型指南

高性能存储刚需党必看!Docker 部署 RustFS,效率直接拉满

别再用第三方短链了!这个开源神器3分钟搭建专属短网址平台

Linux服务器重启后服务不自启?systemd实战指南 + 混沌演练验证

502 Bad Gateway 不是终点:一次生产事故背后的全链路复盘

备份做了,但能恢复吗?MySQL 数据恢复终极指南来了!

Firewalld 实战全攻略:从入门到精通,搭配 ipset 打造高效防护体系!

命令行也能玩转 WebSocket?别再用浏览器调了

MySQL 自动化备份脚本:安全、高效、免维护

Docker磁盘空间告急?3分钟教你彻底清理,释放大量空间!

Nginx 如何正确代理 SSE 与 WebSocket?一篇讲透长连接配置

【实战】打造超强Linux防火墙!10分钟提升服务器安全等级

一个不存在的用户,竟让MySQL 8.4当场崩溃?背后藏着甲骨文不敢明说的安全暗战!

无公网IP!NPS内网穿透终极指南,Docker一键部署

告别 Docker Hub 依赖!从零部署高可用 Harbor 私有镜像仓库


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:小柳实验室 小柳实验室 小柳实验室《吃透Docker网络不用愁!四大核心模式》

今晚开课|网安冬令营 网络安全文章

今晚开课|网安冬令营

文章总结: 该文档是蚁景网安发布的网安冬令营开课通知,发布于2026年1月26日湖南地区。内容表明网络安全培训课程将于今晚正式开始。由于主要为宣传性质,文档仅包
评论:0   参与:  0