Docker – How to get traffic to flow between two overlay networks in Docker Engine Swarm

clusterdocker

I've got two hosts which will will run a web environment using Docker Engine Swarm. I could put all server roles in the same overlay network, but I'd like to keep web containers and database container in separate networks.

I know that Docker Engine Swarm – for every service – creates a DNS entry for the overlay network in question and distributes traffic among containers taking part in that service. Docker Engine Swarm takes care of routing between Docker hosts within the given overlay network. That's all good.

However, how do I get the web nodes to resolve and route to a database node which is located on another overlay network?

enter image description here

Best Answer

You can add services to multiple networks.

$ docker network create -d overlay test1
$ docker network create -d overlay test2
$ docker service create --name my-network-test --network test1 --network test2 image:tag
Related Topic