有些文章将 docker0 桥定义为虚拟桥,但另一篇文章将其定义为虚拟接口。1. 那么如果这是任何网桥(默认情况下桥是 L2 设备),为什么它有 IP 地址?2. 那么 docker0 桥到底是什么?你能给我定义一下 Linux 世界中 docker0 桥的原生定义吗?docker0 由什么组成?
答案1
总是如此同时做两件事。
在 Linux 中,您实际上无法创建“分离”桥接。您总是从创建虚拟bridge
接口开始,同时创建 L2 桥接并将其一个端口连接到您刚刚创建的接口。
因此,接口具有 IP 地址,因为它代表主机操作系统与此网桥的连接(就像 eth0 具有 IP 地址,因为它代表与物理交换机的连接一样)。请注意,它没有需要用于桥接工作的 IP 地址 – 该 IP 地址仅用于允许主机本身参与网络。
但是,所有网桥管理命令也都使用相同的接口来表示实际的 L2 网桥。例如,如果您要列出成员端口或设置 VLAN,则将网桥称为“docker0”,操作系统会将其理解为“docker0 连接到的虚拟网桥”。