docker0網絡是Docker自帶的虛擬網橋,是Docker默認配置的網絡模式,用于在宿主機和Docker容器之間建立網絡連接。
下面是docker0網絡的結構圖:
Host +-------------------+ | Docker0 | | | | +-----------+ | ContainerA | | vEthA | | +---------------+ | +-----------+ | | AppA:80 |-----| | | | | +-----------+ | +---------------+ | | vEthB | | | +-----------+ | | | | +-----------+ | ContainerB | | vEthC | | +---------------+ | +-----------+ | | AppB:80 |-----| | | | | +-----------+ | +---------------+ | | vEthD | | | +-----------+ | | | +-------------------+
結構圖中,Host表示宿主機,Docker0表示docker0網橋,ContainerA和ContainerB表示兩個Docker容器。
在docker0網絡中,每個Docker容器都有一個虛擬以太網設備vEth與之對應,在容器內部,vEth被看作是一塊物理網卡,可以被分配IP地址和設置路由表等操作。vEth為Docker容器提供了網絡連接能力,在容器內部可以通過vEth與外界進行通訊。
Docker容器內部的應用程序可以監聽在指定端口上,例如上面的AppA:80和AppB:80,這些端口可以被宿主機或其他容器訪問。