Docker containers communication

I’m striving to achieve the following :

  • have multiple docker containers that perform some period tasks
  • have a component running on the localhost that besides other tasks manages
    (starts/stops) the containers
  • from time to time the services running
    within the containers need to publish the result. Therefore they bind
    to an exposed port using ZMQ and send the result.
  • the component running on localhost subscribes to a specific port and listens on
    that.

The problem is that every container requires a specific/different port on the localhost network to bind to and publish the results. And this implies that I need to listen on all container ports.

  • Docker Compose vs. Dockerfile - which is better?
  • Can I transport just the image changes/layers i'm concerned with?
  • Docker-Cloud “own node” doesn't connect (ubuntu server)
  • Development workflow for docker-compose: run a dev-version container
  • Link docker container with host
  • Memory and CPU usage definition in docker cadvisor
  • Is it possible to listen to a single port and all containers publish their work there ?

    If not , what would the options be ?

    Thanks

  • Moving from Docker Containers to Cloud Foundry containers
  • Connection refused on docker container
  • Why so many layers on base images? Docker
  • Cant connect to Mysql docker container from host
  • Creating multiple PostgreSQL containers in docker in fedora
  • How can one Docker container call another Docker container
  • 2 Solutions collect form web for “Docker containers communication”

    Try to use ZMQ in container so, containers would publish work to zmq_container and from localhost you will be able to subscribe channel of zmq_contaniner as well (using one port)

    Options:

    1. Publish results to central shared database (like mysql or mongodb container) from all and read from there
    2. Publish results to central shared message queues (like kafka container) from all and read from there. (kafka would be more powerful solution for reliable and real-time message exchange)
    Docker will be the best open platform for developers and sysadmins to build, ship, and run distributed applications.