11. Docker 网络模式有哪几种,各自适用哪些场景。
答:Host 模式:容器直接使用宿主机网络栈,适用于对网络性能要求高、无需端口映射的场景。
Container 模式:容器共享另一个容器的网络命名空间,需要多个容器共享同一个网络栈,适用于需要紧密通信的容器组。
None 模式:容器不配置任何网络,适用于无需网络通信或安全性要求极高的场景。
Bridge 模式:容器通过 Docker 虚拟网桥(如 docker0)进行通信,适用于大多数需要隔离网络并对外提供服务的场景,支持端口映射。
12. 请详细说明 Bridge 模式下容器网络流量的转发过程。
答:Docker 为每个容器创建一对虚拟网卡(veth),一端在容器网络命名空间内,另一端连接到 docker0 网桥。
通过 iptables 在 nat 表的 PREROUTING 链中配置目的地址转换(DNAT),将宿主机端口流量转发至容器 IP 与端口。
流量经 FORWARD 链转发至 docker0 网桥,再由网桥送至对应容器的 veth 端点。
容器回应流量经源地址转换(SNAT)后,通过宿主机网络接口向外发出。