While I've seen other questions about this topic, none seem to be a close enough match to what I'm encountering. Here's my Docker version info within my Swarm:
Server: Docker Engine - Community
Engine:
Version: 19.03.8
API version: 1.40 (minimum version 1.12)
Go version: go1.12.17
Git commit: afacb8b
Built: Wed Mar 11 01:25:42 2020
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.2.13
GitCommit: 7ad184331fa3e55e52b890ea95e65ba581ae3429
runc:
Version: 1.0.0-rc10
GitCommit: dc9208a3303feef5b3839f4323d9beb36df0a9dd
docker-init:
Version: 0.18.0
GitCommit: fec3683
I've been trying to use stack to deploy from a docker-compose file in which I am using a user-defined overlay network (e.g.: docker network create -d overlay some_network --attachable) and while my Services are all coming up, I am observing consistent behavior on my Workers running docker network inspect some_network that the containers listed only enumerate one of the Services in the deployment (there are 3 Services comprised of 1 task each). The peers section of the network inspect shows all the Workers consistently.
Strangely, if I do a docker service ps service_name I do see the Services are scheduled between my Workers. Follow that up with a docker service inspect service_name and what I see for the Networks section is the ID of the user-created overlay network and likewise in the VirtualIPs section there is an IP within the user-created overlay network's CIDR as well as an IP for the ingress. Doing this for each deployed Service turns up similar results: each has the overlay network attached along with an IP within the overlay network.
Any ideas on why this occurs and how to correct? Let me know if you all would like me to provide the docker-compose.yml file.