请解释一下。docker0 桥的网关 IP 为 172.17.0.1。因此,所有容器都将其网络流量发送到此 IP。我不明白桥如何知道之后将这些流量发送到哪里?docker 桥是否具有自己的 iptables 和配置的网关?
答案1
它不是路由 IP 流量的桥梁 – 而是您的主机操作系统本身。docker0 接口的行为与任何其他以太网接口一样。
因此,就像在真实的以太网上一样,当容器将数据包发送到主机的 MAC 地址时,主机操作系统会从网桥“接收”它们,使用系统路由表和系统 iptables 规则进行处理,然后将它们发送到其他接口。
“桥接”部分仅处理 MAC 层转发,就像交换机一样。你可以将 docker0 想象成一个虚拟以太网端口,其中有一根电缆连接到虚拟以太网交换机,而所有容器(例如连接到同一交换机的虚拟机)就是桥接。