2017-04-11 172 views
4

我努力实现以下目标:Docker容器通信

  • 有多个泊坞窗容器执行一段时间任务
  • 对本地主机上运行,​​除了其他任务管理 (启动/停止组件)容器
  • 有时容器内运行 的服务需要发布结果。因此他们使用ZMQ将 绑定到一个暴露的端口并发送结果。
  • 本地主机上运行的组件订阅特定端口并在 上侦听。

问题是每个容器都需要localhost网络上的特定/不同端口来绑定和发布结果。这意味着我需要听所有的集装箱港口。

是否可以收听单个端口并且所有容器都在那里发布他们的工作?

如果不是,那么选项会是什么?

感谢

回答

5

尝试使用ZMQ的容器,这样,容器将发布工作zmq_container并从本地主机,你将能够订阅zmq_contaniner的通道,以及(使用一个端口)

2

选项:

  1. 发布从所有结果到中央共享数据库(如MySQL或mongodb的容器)和读从那里
  2. 发布资源到所有中央共享消息队列(,如kafka容器),并从那里读取。 (kafka将是更可靠和实时消息交换的强大解决方案