Docker好比是一臺多功能瑞士軍刀,其中包括了多種不同的網絡模式。
其中之一就是Docker Network(Docker Net)模式。該模式是設計用來連接容器和宿主機上的其他網絡資源,實現容器與外部網絡的通信。這個模式方便快速,且支持多種網絡連接類型。Docker容器和Docker宿主機都可以在同一網絡中,共享IP地址。
在Docker Net模式下,可以使用包括以下命令:
docker network create --driver bridge my_bridge_network
上述命令創建了一個名為“my_bridge_network”的命名空間,其驅動程序為bridge類型。
Bridge類型是最常用的Docker Network類型。當容器啟動時,Docker會為其分配單獨的IP地址并創建一個名為“docker0”的虛擬網絡接口,并將其添加到宿主機上。新創建的容器將自動連接到這個新網絡。當同樣的網絡中有多個容器運行時,可以通過網絡別名(alias)或服務名稱(service name)來訪問容器。
使用Bridge類型網絡,需要指定地址范圍、默認網關和DNS等參數來限定容器間的通訊。
docker network create --driver macvlan --subnet=192.168.1.0/24 --gateway=192.168.1.1 --ip-range=192.168.1.128/25 --aux-address="my-host=192.168.1.129" macvlan_net
上述命令創建了一個“macvlan_net”網絡,并分配了指定的IP地址范圍、子網掩碼、默認網關和DNS服務器。此外,還分配了主機的物理網絡接口(以太網卡)的MAC地址,以確保容器可以通過該網絡接口進行通信。這種方法要求宿主機上有另外一個網絡接口可供容器使用,一般是宿主機的硬件網卡。