【Docker网络】五种网络模式深度解析
·
1. Bridge 模式(默认模式)
- 特点:
- Docker 自动创建虚拟网桥
docker0。 - 每个容器拥有独立的网络命名空间,分配私有 IP(如
172.17.0.x)。 docker0作为容器的默认网关。
- Docker 自动创建虚拟网桥
- 端口访问:
- 容器端口默认不对外暴露。
- 通过
-p 宿主机端口:容器端口显式映射(如-p 8080:80),外部才能通过宿主机IP:8080访问容器服务。
- 适用场景:大多数单机应用部署。
默认行为,安全隔离,需手动暴露端口。
2. Host 模式
- 特点:
- 容器共享宿主机的网络命名空间。
- 容器没有独立 IP,直接使用宿主机的 IP 和端口。
- 无需
-p映射,容器内服务监听的端口 = 宿主机端口。
- 限制:
- 端口冲突风险高(多个容器不能监听同一端口)。
- 仅支持 Linux,不支持 macOS/Windows。
- 适用场景:高性能网络需求(如监控代理、低延迟服务)。
性能高,但失去网络隔离。
3. None 模式
- 特点:
- 容器仅有 loopback 接口(
lo),无任何外部网络连接。 - 不分配 IP,不连接网桥,不配置路由。
- 容器仅有 loopback 接口(
- 用途:
- 完全隔离的离线任务(如数据处理、批处理作业)。
- 需要手动配置网络的特殊场景。
- 注意:容器内部无法访问外网,外部也无法访问容器。
完全断网,极致隔离。
4. Container 模式(共享网络命名空间)
- 特点:
- 新容器复用另一个已存在容器的网络命名空间。
- 共享 IP、端口、网络接口,但 PID、文件系统、用户等其他命名空间仍相互隔离。
- 使用方式:
--network container:<目标容器名或ID>
- 典型用途:
- Sidecar 模式(如主应用 + 日志收集器共享网络)。
- 调试工具容器与目标容器网络一致(如
netshoot诊断容器)。
- 注意:目标容器必须处于运行状态。
网络共享,其他资源隔离,适合协同工作。
对比总结
| 模式 | 网络隔离 | IP 地址 | 端口映射 | 典型用途 |
|---|---|---|---|---|
| Bridge | 独立 | 私有 IP | 需 -p | 默认部署 |
| Host | 共享 | 宿主机 IP | 无需 -p | 高性能服务 |
| None | 无网络 | 无(仅 lo) | 不可用 | 离线任务 |
| Container | 共享某容器 | 同目标容器 | 同目标容器 | Sidecar / 调试辅助 |
更多推荐


所有评论(0)