2016-07-25 118 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