Docker容器通信

时间:2017-04-11 12:08:05

标签: docker dockerfile pyzmq

我正在努力实现以下目标:

  • 有多个执行某些期间任务的docker容器
  • 除了其他任务之外,还有一个在localhost上运行的组件 (开始/停止)容器
  • 不时运行服务 容器内需要发布结果。因此他们绑定 使用ZMQ到一个暴露的端口并发送结果。
  • 在localhost上运行的组件订阅特定端口并侦听 这一点。

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

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

如果没有,选项会是什么?

由于

2 个答案:

答案 0 :(得分:5)

尝试在容器中使用ZMQ,因此容器会将工作发布到zmq_container,并且从localhost也可以订阅zmq_contaniner的通道(使用一个端口)

答案 1 :(得分:2)

选项:

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