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.

  • Load balancing of network requests between replicas of services in docker swarm mode
  • Multiple instance application in docker
  • Executing wait-for-it.sh in python Docker container
  • Manage docker images from “docker jenkins container”?
  • How to setup SSH access to a docker container?
  • What does “attach to standard streams” mean in docker?
  • Is it possible to listen to a single port and all containers publish their work there ?

    If not , what would the options be ?

    Thanks

  • Docker - maven connect to specific repository in runtime
  • Docker: How to save running instance?
  • How can I wait for a docker container to be up and running?
  • Fluentd not getting the correct docker container name after rancher upgrade
  • How to reach the service running in docker container(overlay) externally from different hosts
  • WebSockets on Elastic Beanstalk with Docker
  • 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.