Please help me get this right,
An overlay network in swarm mode allows cross-node containers to be able see each other as on the same network.
Is that right?
So if I had the following setup:
depends_on: - CM:target Would I be able to ping target from CM? If not, why?
Demo:
docker stack deploy -c test.yml test
where test.yml is as follows:
version: "3"
services:
CM:
image: alpine
command: sh -c 'ping CW'
depends_on:
- CW
networks:
- OVNET
deploy:
placement:
constraints:
- node.role == manager
CW:
image: alpine
command: sh -c 'ping localhost'
networks:
- OVNET
deploy:
placement:
constraints:
- node.role == worker
networks:
OVNET:
driver: overlay
Thnaks in advance!
Yes, it works as you would expect. The network is created first, then the containers are placed according to their constraints. I would expect that the first instance of CM might fail as CW would need time to pull the image but after that would work fine. Containers on the same overlay network can talk to each other via their service names over the in-built DNS.