如何设置docker集装箱在专用networking上进行通信?

我在机架空间有一个小型集群,其中一个专用networking的范围是192.168.3.0/24。 我想我的工人服务使用这个networking互相交谈,但不能弄清楚如何让docker允许。

我的理想configuration是一个单独的面向公众的容器,代理与工作人员的连接,然后可以与私人networking中的各种服务交谈来完成工作。

eth0 -> load balancer --> 192.168.3.3:80 --> 192.168.3.5:1234 (db) \-> 192.168.3.4:80 / \> 192.168.3.5:80/ 

如果所有的工人都在同一台机器上,我可以通过docker run --link ...来完成这个docker run --link ...但是由于他们在不同的机器上,这是行不通的。

上例中的工作人员使用类似这样的命令启动:

 docker run -d -p $PRIVATE_IPV4:80:80 myworker 

和数据库开始像这样:

 docker run -d -p $PRIVATE_IPV4:1234:1234 mydb 

主机我可以谈到每个容器,但每个容器不能路由到任何其他容器。 IE curl http://192.168.3.4可以从主机上运行,​​但不能从运行在主机上的容器运行。

在这种情况下,负载均衡器是nginx开始像这样:

 docker run -d -p $PUBLIC_IPV4:80:80 nginx 

nginx.conf

 upstream app { server 192.168.3.3:80; server 192.168.3.4:80; server 192.168.3.5:80; } ... 

这似乎是一个非常标准的configuration。 我究竟做错了什么?

您可以尝试在CoreOS之上的Kubernetes之类的容器pipe理器中实现您的架构。 那里有很多指南。 这是DockerCon https://www.brighttalk.com/webcast/11427/136165关于容器集群pipe理的介绍。

目前,Docker本身并不提供容器networking设施。 编织是最简单的覆盖SDN解决scheme之一。 它适用于任何云,甚至跨多个云。

我应该放弃,我是一个编织工程队。