← 返回技术随笔仓库

Docker 网络模式选型:bridge/host/overlay

发布时间:2026-09-12容器云原生

bridge 是默认模式:docker0 网桥 + veth 对 + NAT。容器有独立网络栈,-p 8080:80 的本质是宿主机上的 iptables DNAT。同一自定义 bridge 网络内的容器可以用服务名互访(内置 DNS),这是 compose 多容器协作的基础;默认 bridge 网络没有这个 DNS 特性,只能用 IP,生产建议一律自建网络。性能上 NAT 和 veth 有轻微损耗,实测对绝大多数应用无感。

host 模式 --network host:容器直接共享宿主机网络栈,没有隔离没有 NAT,端口就是宿主机端口(-p 参数失效)。性能最好,适合对网络延迟极敏感的场景(高吞吐代理、监控采集)。代价:端口冲突风险(两个容器抢 80 直接起不来)、失去网络隔离、容器能看到宿主机全部网络接口——安全边界弱化,多租户环境禁用。

overlay 跨主机:VXLAN 封装让不同宿主机上的容器处于同一虚拟网络,swarm 和 K8s CNI(flannel/calico)的底层思路。封装有开销(MTU 也要缩水,见 MTU 那篇),换来的是容器漂移和水平扩展。选型口诀:单机普通应用 bridge + 自定义网络;性能敏感单进程 host;多机集群 overlay/CNI。none 模式(只有 lo)用于纯计算不需要网络的批处理任务,安全隔离最彻底。