当前位置: 首页 > news >正文

Docker 网络模式

Docker 的网络模式有以下几种,每种模式对应不同的通信能力、隔离性和使用场景。这是你构建服务之间通信(比如 Tomcat ↔ Kafka ↔ Redis)时必须理解的基础。


一览表:Docker 网络模式对比

模式是否隔离是否可用容器名通信是否共享宿主机端口使用场景举例
bridge(默认)✅ 是✅ 支持❌ 否单机部署,容器通信
host❌ 否❌ 不支持✅ 是高性能服务,绑定宿主机网络
container:<name>❌ 否✅ 共享网络命名空间✅ 同容器多个容器共享网络栈
none✅ 是❌ 无网络❌ 无法通信手动配置网络
自定义 bridge 网络✅ 是✅ 支持❌ 否推荐:容器互通,跨 compose

1. bridge 模式(默认)

  • 每个容器都在独立的网络命名空间。
  • 容器默认不能用容器名访问其他容器,除非显式创建自定义网络。
  • 通过端口映射暴露服务:
docker run -d -p 8080:80 nginx

典型适用:

  • 小型服务;
  • 默认方式;
  • 宿主机访问容器通过端口映射。

2. 自定义 bridge 网络(推荐)

docker network create app_net
docker run --network app_net --name kafka ...
docker run --network app_net --name tomcat ...
  • 所有容器在同一网络 app_net 内;
  • 支持 DNS 解析,可以用容器名访问其他容器。

适用场景:

  • 微服务通信(Kafka、Redis、MySQL、Tomcat、Nginx…);
  • 多个 docker-compose 项目共享网络。

3. host 模式(共享宿主网络)

network_mode: host
  • 容器和宿主机使用同一网络命名空间;
  • 端口不需要映射,容器服务直接暴露在宿主机上;
  • 不支持容器名访问。

适用场景:

  • Kafka 在某些场景下需要 host 网络解决外网消费者访问问题;
  • 高性能场景(UDP 广播监听、Prometheus node_exporter);
  • 简化配置时使用,但损失了隔离性。

限制:

  • 容器名互 ping 不通;
  • 多容器端口容易冲突;
  • docker-compose 中不能使用 networks:host 同时出现。

4. container:<container_name_or_id> 模式

  • 新容器和指定容器共用网络命名空间。
  • 可用于运行副容器(sidecar 模式)。
docker run --network container:nginx alpine

适用场景:

  • 多个容器共享 IP、端口空间;
  • 调试场景、sidecar、与主容器同生死。

5. none 模式(无网络)

docker run --network none ubuntu
  • 容器没有网络;
  • 只能通过挂载 sock 或手动设定网络设备通信。

适用场景:

  • 网络隔离测试;
  • 需要自定义网络配置的极端场景。

实战建议

目标推荐网络设置
Tomcat ↔ Kafka ↔ Redis自定义 bridge 网络,如 app_net
Docker 容器 ↔ 宿主机-p 映射端口或使用 host 网络
docker-compose 文件通信使用同一个 external 自定义网络


文章转载自:

http://B9Qfuqgl.rbkgp.cn
http://kWZQ3CUm.rbkgp.cn
http://qQL1RNEU.rbkgp.cn
http://Tp9LjkTl.rbkgp.cn
http://2wkkcpb9.rbkgp.cn
http://O4t1e0q7.rbkgp.cn
http://cbirxBRU.rbkgp.cn
http://YMo7QPRG.rbkgp.cn
http://jObGxqE0.rbkgp.cn
http://6GDvA6Ax.rbkgp.cn
http://ONDoIroN.rbkgp.cn
http://ZbLntiMD.rbkgp.cn
http://7ZmkG5VK.rbkgp.cn
http://0PNenKuh.rbkgp.cn
http://NT4XCnJn.rbkgp.cn
http://7PyReq0M.rbkgp.cn
http://ajwJQf6m.rbkgp.cn
http://SBMNGf5B.rbkgp.cn
http://wSGr7Zqm.rbkgp.cn
http://WIBL8PaW.rbkgp.cn
http://DjR4D2G2.rbkgp.cn
http://Hv7IlNOh.rbkgp.cn
http://KLMDLyhe.rbkgp.cn
http://y8duoCDz.rbkgp.cn
http://d3kedUXS.rbkgp.cn
http://E362mWrH.rbkgp.cn
http://Gj5HELGd.rbkgp.cn
http://LyOgaJnH.rbkgp.cn
http://YbWy5aI2.rbkgp.cn
http://4OR89iP6.rbkgp.cn
http://www.dtcms.com/a/245867.html

相关文章:

  • Golang启用.exe文件无法正常运行
  • SM4 与 AES 在 GPU 上的性能比较
  • GAN+ECA注意力机制实现图像超分辨率重建
  • 第七十九篇 大数据开发基石:堆数据结构解析与生活化应用
  • Vue3 计算属性 computed
  • 在macOS上运行Linux容器的方法
  • G1周打卡——GAN入门
  • linux 中pdf 的自动分页工具
  • 专题:2025年跨境B2B采购买家行为分析及采购渠道研究报告|附160+份报告PDF汇总下载
  • 【Go-补充】实现动态数组:深入理解 slice 与自定义实现
  • 2025年硬件实习/秋招面试准备
  • Cordova移动应用对云端服务器数据库的跨域访问
  • Python原生爬虫教程:微店商品详情API接口攻略指南
  • 手写muduo网络库(七):深入剖析 Acceptor 类
  • 如何正确评估服务器CPU/内存/IO利用率 (性能过剩or瓶颈)
  • SpringBoot后端开发知识点总结(持续更新)
  • Nginx(自用)
  • 会技术的产品经理
  • mt6739 Android12出现 red state
  • uniapp开发的app和原生的app开发各有什么优缺点
  • 数据结构 - Java 队列
  • MybatisPlus-DQL查询+DML
  • Rust 学习笔记:处理任意数量的 future
  • Odoo 18 库存中管理最低安全库存规则(再订货规则)
  • 【WebSocket】WebSocket架构重构:从分散管理到统一连接的实战经验
  • 【EdgeAI实战】(3)边缘AI开发套件 STM32N6570X0 用户手册
  • Jenkins 配置gitlab的 pipeline流水线任务
  • reactive() 和 toRef()
  • VR 地震安全演练:“透视” 地震,筑牢企业安全新护盾​
  • 单连杆倾角估计:互补滤波器的 MATLAB 仿真实现