2016-07-25 71 views
0

我嘗試從多個虛擬機使用靜態IP遷移到基於容器的解決方案。碼頭網絡直接訪問容器

現在我使用的是虛擬機使用靜態IP:

enter image description here

我可以ping和telnet我的虛擬機telnet 10.48.0.10 5432telnet 10.48.0.11 5432

我想創建一個單一的碼頭工人主機允許我做相同:

enter image description here

這將是偉大的,如果我可以telnet 172.17.0.2 5432telnet 172.17.0.3 5432

我嘗試通過碼頭,因爲我想要管理配置。

這樣做的正確方法是什麼? 我應該使用容器內的TCP代理來管理這個嗎?

回答

1

的解決方案是非常簡單的。

創建一個網絡,並將其綁定到主機

docker network create --subnet=10.0.0.0/24 -o "com.docker.network.bridge.host_binding_ipv4"="0.0.0.0" mynet 

然後從另一臺計算機mynet網絡

docker run -ti --net=mynet --ip=10.0.0.30 busybox 

上運行的容器現在,如果你添加的路由到您的泊塢窗主機(192.168.2.156 )爲這個子網:

sudo route add -net 10.0.0.0 netmask 255.255.255.0 gw 192.168.2.156 

你可以ping你的容器( ping 10.0.0.30

0

如果要從主機或任何其他可以獲取主機的服務器訪問容器,則需要將每個容器映射到主機服務器中的其他端口。

docker run -d -p 54321:5432 my_app 
docker run -d -p 54322:5432 my_app 

所以你可以telnet 10.200.0.1 54321telnet 10.200.0.1 54322