2016-11-28 42 views
1

我有一个套接字上侦听泊坞窗的容器,可以说,它的UDP端口20000(这是未来物联网的UDP数据)泊坞端口检测

这个应用程序可以(也应该)loadbalanced。

我将它发布到我的码头主机并公开端口。 Docker在docker主机上分配一些随机端口。

我需要将此容器添加到位于泊坞网外部的负载均衡器上的池中。

我该如何实现自动化?每当这个容器的新实例启动时,我需要将它添加到池中。当它死亡时,我需要将它从池中移除。

+0

您可能想要订阅docker事件,然后在获取启动/停止事件时检查端口的图像,并且如果使用'--name mycontainer_app'启动容器,则您的负载均衡器可以正常运行 – user3012759

+0

“docker”检查mycontainer_app',更准确地说是'docker inspect --format'{{(index(index.NetworkSettings.Ports“20000/tcp”)0).HostPort}} mycontainer_app'应该给你这个端口 – user2915097

+0

看到我的答案http://stackoverflow.com/questions/30342796/how-to-get-env-variable-when-doing-docker-inspect/30353018#30353018了解更多详情 – user2915097

回答

0

这为我工作模式是使用2件:

  1. Registrator,因为他们去上线,并于一种服务注册中心(例如Consul)的注册它们检测容器。
  2. 知道(监视)已注册的服务并相应地更改其配置的负载均衡器。在我的具体情况下,它是Consul Template支持HAProxy,在自动化所有这些方面做得很好。

一般来说,这种模式可以在细节上有所不同,但通常它会是这样的。