When you first create a swarm, you place a single Docker Engine (Engine) into swarm mode. To take full advantage of swarm mode you can add nodes to the swarm:
Before you add nodes to a swarm you must install Docker Engine 1.12 or later on the host machine.
The Docker Engine joins the swarm depending on the join-token you provide to
the docker swarm join
command. The node only uses the token at join time. If
you subsequently rotate the token, it doesn’t affect existing swarm nodes. Refer
to Run Docker Engine in swarm mode.
To retrieve the join command including the join token for worker nodes, run the following command on a manager node:
$ docker swarm join-token worker
To add a worker to this swarm, run the following command:
docker swarm join \
--token SWMTKN-1-49nj1cmql0jkz5s954yi3oex3nedyz0fb0xx14ie39trti4wxv-8vxv8rssmk743ojnwacrr2e7c \
192.168.99.100:2377
Run the command from the output on the worker to join the swarm:
$ docker swarm join \
--token SWMTKN-1-49nj1cmql0jkz5s954yi3oex3nedyz0fb0xx14ie39trti4wxv-8vxv8rssmk743ojnwacrr2e7c \
192.168.99.100:2377
This node joined a swarm as a worker.
The docker swarm join
command does the following:
Active
availability, meaning it can receive tasks
from the scheduler.ingress
overlay network to the current node.When you run docker swarm join
and pass the manager token, the Docker Engine
switches into swarm mode the same as for workers. Manager nodes also participate
in the raft consensus. The new nodes should be Reachable
, but the existing
manager will remain the swarm Leader
.
Docker recommends three or five manager nodes per cluster to implement high availability. Because swarm mode manager nodes share data using Raft, there must be an odd number of managers. The swarm can continue to function after as long as a quorum of more than half of the manager nodes are available.
For more detail about swarm managers and administering a swarm, see Administer and maintain a swarm of Docker Engines.
To retrieve the join command including the join token for manager nodes, run the following command on a manager node:
$ docker swarm join-token manager
To add a manager to this swarm, run the following command:
docker swarm join \
--token SWMTKN-1-61ztec5kyafptydic6jfc1i33t37flcl4nuipzcusor96k7kby-5vy9t8u35tuqm7vh67lrz9xp6 \
192.168.99.100:2377
Run the command from the output on the manager to join the swarm:
$ docker swarm join \
--token SWMTKN-1-61ztec5kyafptydic6jfc1i33t37flcl4nuipzcusor96k7kby-5vy9t8u35tuqm7vh67lrz9xp6 \
192.168.99.100:2377
This node joined a swarm as a manager.
swarm join
command line reference