上一節我們准備好了 macvlan 的實驗環境,今天在 host1 和 host2 中創建 macvlan 網絡 mac_net1:
注意:在 host2 中也要執行相同的命令。
① -d macvlan
指定 driver 為 macvlan。
② macvlan 網絡是 local 網絡,為了保證跨主機能夠通信,用戶需要自己管理 IP subnet。
③ 與其他網絡不同,docker 不會為 macvlan 創建網關,這里的網關應該是真實存在的,否則容器無法路由。
④ -o parent
指定使用的網絡 interface。
在 host1 中運行容器 bbox1 並連接到 mac_net1。
由於 host1 中的 mac_net1 與 host2 中的 mac_net1 本質上是獨立的,為了避免自動分配造成 IP 沖突,我們最好通過 --ip
指定 bbox1 地址為 172.16.86.10。
在 host2 中運行容器 bbox2,指定 IP 172.16.86.11。
驗證 bbox1 和 bbox1 的連通性。
bbox2 能夠 ping 到 bbox1 的 IP 172.16.86.10,但無法解析 “bbox1” 主機名。
可見 docker 沒有為 macvlan 提供 DNS 服務,這點與 overlay 網絡是不同的。
下一節我們將詳細分析 macvlan 的網絡結構。