Q: Multiple Docker host machine communication Suppose, I want to connect a container with another container, where both docker containers are running on a different machine. How do I do that? Hopefully, the attached picture will help to understand what I need. thanks.


A: This works exactly the same way as if neither process was running in Docker: connect to the other system's IP address and the port you published when you launched the container.
machine02$ docker run --name m2-c1 -p 12345:80 image1

machine01$ docker run --name m1-c5 \
>            -e CONTAINER_1_URL=http://192.168.1.102:12345 \
>            image5

If you find yourself doing this often, a clustered setup like Kubernetes or Docker Swarm is built for this sort of environment.  They have a piece called an overlay network that would allow all 10 containers to share a single "network", so you can directly call c1 as a host name and reach either copy of it.  A non-Docker service discovery system, like Hashicorp's Consul, can also help remember what service is running on which node.
