MACVLAN (Media Access Control Virtual Loacl Area Network) 允許你在主機的一個網卡(Network Interface Card, NIC)上配置多個虛擬的網卡,這些網卡有自己獨立的 MAC 地址,也可以配置 IP 地址進行通訊,並將這些地址分配給 Container 使用,使 Container 在網路上顯示為實體地址 (Physical Address ) 而不是虛擬地址 (Virtual Address),希望能讓某些只能連到物理設備的應用程序能夠正常運作。
Docker daemon 通過 Container 的 MAC 地址連線到 Container。在 Maclvan 下的虛擬機器 (Virtual Machine, VM) 或 Container 的網路與 Host 都在同一個網段中,共享同一個廣播域 (Broadcast Domain)。
以下為設定 Macvlan 後的網路架構:
Bridge 有以下特點:
下方是一個在 Linux Host 上,多個 VM 使用 Bridge 相互通訊的狀況:
Macvlan 有以下特點: