结论:Docker 内置四种主要网络模式:bridge(默认)、host、none、container,跨主机场景还有 overlay 和 macvlan。

展开:1)bridge:默认模式,宿主机上创建 docker0 虚拟网桥,每个容器分配独立网络命名空间和 veth pair,对外通过 NAT 通信,端口映射用 -p 8080:80。用户自定义 bridge 网络比默认 bridge 多了内置 DNS,容器间可直接用容器名互访,生产推荐。2)host:容器共享宿主机网络命名空间,无 NAT 损耗,适合对网络性能敏感或需要绑定大量端口的场景,但失去端口隔离。3)none:无网络,适合完全离线任务。4)container:复用另一个容器的网络栈,Kubernetes Pod 内容器共享网络命名空间正是基于此。5)overlay:基于 VXLAN 的跨主机网络,Docker Swarm 使用;K8s 中由 CNI 插件(Calico、Flannel)实现类似能力。易错点:默认 bridge 上容器互访要靠 --link(已废弃)或 IP,IP 重启会变,所以务必用自定义网络加服务名发现。面试可追问:容器间通信数据包路径(veth → 网桥 → iptables NAT)。