Docker Community Forums

Share and learn in the Docker community.

Docker 1.12 with Swarm 1.2.5 consul issue

Hi,
So many limitations with 1.12.x in swarm mode, am trying 1.12 with swarm 1.2.5
Built as per ‘Build a Swarm cluster for production’ in the 1.12.docs. All nodes are running 1.12.1 (23cf638) on Debian Jessie servers.
So I start everything in the following sequence:
Docker daemon on all servers with the command ‘docker daemon -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock’

Start CONSUL
docker run -p 8500:8500 --name=consul progrium/consul -server -bootstrap (no -d to see logs)
Logs show it stared itself and added itself.

Start MANAGERS
docker run -p 4000:4000 --name swmgr1 swarm manage -H :4000 --replication --advertise 10.113.47.27:4000 consul://10.113.47.36:8500
docker run -p 4000:4000 --name swmgr2 swarm manage -H :4000 --replication --advertise 10.113.47.22:4000 consul://10.113.47.36:8500
not in demon mode as I am monitoring output.

Start NODES
docker run --name swnode1 swarm join --advertise=10.113.47.39:2375 consul://10.113.47.36:8500
docker run --name swnode2 swarm join --advertise=10.113.47.41:2375 consul://10.113.47.36:8500
Nodeas and Managers seeing each other. Node generating the message "level=info msg=“Registering on the discovery service every 1m0s…” addr=“10.113.47.39:2375” discovery=“consul://10.113.47.36:8500” (no output appearing on console of the CONSUL box)

At this pioint from a manager I can, for example, fire off a sequence of hello-worlds and see them run on each node.

SO the next step, as I need all containers on all nodes to see each other and to resolve each other, should simply be to create an overlay network to attach them all to. So from manager 1:
docker -H :4000 network create --driver overlay sigmanet
Error response from daemon: Error response from daemon: datastore for scope “global” is not initialized
or from a node
docker network create --driver overlay sigmanet
Error response from daemon: Error response from daemon: datastore for scope “global” is not initialized

Confused now. The docs say it should create overlay networks by default, but they create bridge by deafult

docker network create sigmanet

aee4f20aebef3c37a25716350f2bed921fdcdf03a56e103c949fb0da3ad193ce
root@sw-node-0:~# docker network ls
NETWORK ID NAME DRIVER SCOPE
8590e4cc8124 bridge bridge local
cd8d94e50c44 host host local
e7bf2a000888 none null local
aee4f20aebef sigmanet bridge local

Am I looking at the wrong documentation? Or is this another ‘half working’ thing like swarm-mode in 1.12.
Any help or guidance gratefully recieved

Hello everybody.

I just wanted to say that the exact same thing happened to me with Ubuntu 14.04.5 servers. I hope someone can help us.

1 Like

I was missing

–engine-opt=“cluster-store=consul://${CONSUL_PUBLIC_IP}:8500/swarm-name”
–engine-opt=“cluster-advertise=eth1:2376” \

in my case, using docker/swarm (NOT Docker engine swarm mode)

would you need to tag this before you create the swarm with docker-machine or when you are trying to overlay with compose?

Thanks to all who responded. We abandoned docker/swarm, and have gone down the path of docker engine in swarm mode. There are still major interconnectivity problems with the software, but we have managed to get around most of them by using a global network and a global container to glue everything together, then running our application over it

1 Like

Why did you decide to abandon it? I.e. Docker explicitly states, that it will continue supporting it - although to me development seems a bit slowed down.
I also noticed major issues with swarm mode, like docker/swarm had like in 1.0.x (with Engine 1.10), would you confirm that?