3
我在主PC中安裝了4個NIC。我想啓動不同的碼頭的容器,並將不同的物理網卡綁定到每個容器。我該怎麼做碼頭工? 對於VirtualBox,可以通過爲物理網卡的每個虛擬機創建網橋適配器來完成此操作。將物理NIC綁定到Docker的容器
我在主PC中安裝了4個NIC。我想啓動不同的碼頭的容器,並將不同的物理網卡綁定到每個容器。我該怎麼做碼頭工? 對於VirtualBox,可以通過爲物理網卡的每個虛擬機創建網橋適配器來完成此操作。將物理NIC綁定到Docker的容器
當您在Docker上使用-P
或-p
選項公開端口時,它只是創建一個iptables目標NAT或DNAT條目。您甚至可以通過運行下面的命令來查看這些條目。
iptables -t nat -nL
...
Chain DOCKER (2 references)
target prot opt source destination
DNAT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:8001 to:172.17.0.19:80
DNAT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:8002 to:172.17.0.20:80
默認搬運工將使用0.0.0.0/0(即所有接口)規範來轉發端口太並從搬運工容器主機。但是,您可以替換這些規則以僅從選定的接口轉發。
所以說我有兩個網絡服務器都希望聽取端口80.我會運行它們如下。請注意,我沒有公開任何端口。這樣只有我們創建的IP Tables規則才允許訪問這些節點。
docker run --name web1 -t something/web-server
docker run --name web2 -t something/web-server
潤泊塢窗檢查,以獲得容器的虛擬IP
docker inspect web1 | grep IPAddress
IPAddress": "172.17.0.19",
docker inspect web2 | grep IPAddress
IPAddress": "172.17.0.20",
現在DNAT規則添加了特定的接口:
iptables -t nat -A DOCKER -p tcp -d [INTERFACE_1_IP] --dport 80 -j DNAT --to-destination 172.17.0.19:80
iptables -t nat -A DOCKER -p tcp -d [INTERFACE_2_IP] --dport 80 -j DNAT --to-destination 172.17.0.20:80
通過電流搬運工文檔沖刷後發現這一點。希望我在幾小時前得到了這個直接答案。 – NickAbbey 2016-11-01 01:23:07