企业级Docker必须用自定义bridge网络替代默认docker0:支持服务名解析、固定IP、子网隔离与内置DNS,禁用默认bridge以规避IP漂移、通信中断及安全风险。

Docker Bridge 网络在企业级系统中不是“开箱即用”就能稳用的,关键在于避开默认 bridge 的硬伤,转向可管理、可追踪、可扩展的自定义 bridge 网络方案。
必须用自定义 bridge 网络代替默认 docker0
默认 bridge(docker0)网段固定为 172.17.0.0/16,不支持容器名解析、IP 不固定、DNS 不可控,多容器重启后通信链路易断——这在生产环境是不可接受的。
- 创建带子网和网关的专用网络:
docker network create --driver bridge --subnet 192.168.100.0/24 --gateway 192.168.100.1 app-net - 所有业务容器必须显式加入该网络,禁止使用
--network bridge或不指定网络 - 同一业务域的服务(如 web + api + db)统一归属一个网络,不同业务域(如支付 vs 用户中心)使用隔离网络
容器间通信靠服务名,不靠 IP
自定义 bridge 自带内置 DNS,容器启动时自动注册服务名,无需额外配置或外部 DNS 服务。
MiniMax 图片理解 + 网络搜索 MCP 工具。适配 Docker 环境(极空间等),支持图片 OCR 识别、图像内容理解、网络搜索。API Key 安全存储在本地 credentials 文件,不暴露在代码中。
- 启动时指定网络和名称:
docker run -d --name user-db --network app-net mysql:8.0 - 另一容器直接
ping user-db或curl http://user-db:3306即可通 - 避免在代码或配置中写死 IP;若需固定 IP,可在 run 时加
--ip 192.168.100.10(仅限自定义网络)
端口暴露严格按需,内外网分离
Bridge 模式下,容器端口默认只对内部网络开放。对外暴露必须显式声明,这是安全基线。
- 仅内部调用的服务(如缓存、消息队列)用
expose字段,不映射到宿主机 - 面向用户的入口服务(如 Nginx、API 网关)才用
ports映射,且建议绑定特定宿主机 IP:-p 10.10.20.5:8080:80 - 禁止使用
-P(随机端口映射),防止端口冲突与审计盲区
配套运维与可观测性要点
企业级落地不止于配置,还要能查、能控、能扩。
- 网络状态检查:用
docker network inspect app-net查看已连接容器、IP 分配、DNS 配置 - 连通性验证:进入容器执行
nslookup user-db和telnet user-db 3306双重确认 - 带宽与连接数限制(高并发场景必需):
--network app-net --cpus 1 --memory 512m --limit-bps 10mb - 日志与监控接入:将容器网络指标(如 packet drop、conntrack 数)通过 Prometheus + cAdvisor 采集

















