2016-04-11 77 views
3

正如您在Docker 1.9之後所瞭解的,我們可以創建連接容器的橋。Docker:如何連接兩座橋

我已經創建了兩個自定義橋:橋A 172.18.0.1和橋B 172.19.0.1

現在我在bridge A上有一個container1,在bridge B上有一個叫做「mailServer」的container2。

container1需要通過DNS到達container2,我應該怎麼做?因爲他們在不同的橋樑上,所以他們不能互相交談。我需要一個路由器,並且可以通過Docker實現嗎?

這是Docker的一項新功能,我沒有找到太多信息。謝謝。

回答

3

您可以嘗試使用veth peer,以便連接兩個網橋。確保你已經重新命名並分別使用你配置的名稱。

ip link add veth0 type veth peer name veth1 
ifconfig veth0 up 
ifconfig veth1 up 
brctl addif <D1-A-Bridge> veth0 
brctl addif <D2-A-Bridge> veth1 
0

如果要連接兩座橋,可以使用一對 補丁端口開放的V-Switch。以下示例創建了橋接器br0和br1,將eth0和tap0添加到br0,將tap1添加到br1,然後將br0和br1連接到一對修補器端口。

ovs-vsctl add-br br0 
    ovs-vsctl add-port br0 eth0 
    ovs-vsctl add-port br0 tap0 
    ovs-vsctl add-br br1 
    ovs-vsctl add-port br1 tap1 
    ovs-vsctl \ 
     -- add-port br0 patch0 \ 
     -- set interface patch0 type=patch options:peer=patch1 \ 
     -- add-port br1 patch1 \ 
     -- set interface patch1 type=patch options:peer=patch0 
4

要連接到container2的container1你也可以將其連接到bridgeB

$ docker network connect bridgeB container1 

這將允許container1連接的IP地址container2的,DNS名稱仍然有AFAIK手動更新。

Docker網絡指南here中的更多信息。