When you first install and start working with Docker Engine, swarm mode is disabled by default. When you enable swarm mode, you work with the concept of services managed through the docker service
command.
There are two ways to run the Engine in swarm mode:
When you run the Engine in swarm mode on your local machine, you can create and test services based upon images you've created or other available images. In your production environment, swarm mode provides a fault-tolerant platform with cluster management features to keep your services running and available.
These instructions assume you have installed the Docker Engine 1.12 or later on a machine to serve as a manager node in your swawrm.
If you haven't already, read through the swarm mode key concepts and try the swarm mode tutorial.
When you run the command to create a swarm, the Docker Engine starts running in swarm mode.
Run docker swarm init
] to create a single-node swarm on the current node. The Engine sets up the swarm as follows:
default
.Active
availability, meanining it can receive tasks from the scheduler.ingress
for publishing service ports external to the swarm.The output for docker swarm init
provides the connection command to use when you join new worker or manager nodes to the swarm:
$ docker swarm init Swarm initialized: current node (dxn1zf6l61qsb1josjja83ngz) is now a manager. To add a worker to this swarm, run the following command: docker swarm join \ --token SWMTKN-1-49nj1cmql0jkz5s954yi3oex3nedyz0fb0xx14ie39trti4wxv-8vxv8rssmk743ojnwacrr2e7c \ 192.168.99.100:2377 To add a manager to this swarm, run the following command: docker swarm join \ --token SWMTKN-1-61ztec5kyafptydic6jfc1i33t37flcl4nuipzcusor96k7kby-5vy9t8u35tuqm7vh67lrz9xp6 \ 192.168.99.100:2377
The manager node requires a secret token for a new node to join the swarm. The token for worker nodes is different from the token for manager nodes.
To retrieve the join command including the join token for worker nodes, run:
$ 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 This node joined a swarm as a worker.
To view the join command and token for manager nodes, run:
$ docker swarm join-token manager To add a worker to this swarm, run the following command: docker swarm join \ --token SWMTKN-1-49nj1cmql0jkz5s954yi3oex3nedyz0fb0xx14ie39trti4wxv-8vxv8rssmk743ojnwacrr2e7c \ 192.168.99.100:2377
Pass the --quiet
flag to print only the token:
$ docker swarm join-token --quiet worker SWMTKN-1-49nj1cmql0jkz5s954yi3oex3nedyz0fb0xx14ie39trti4wxv-8vxv8rssmk743ojnwacrr2e7c
Pass the --rotate
for swarm join-token
to the token for a worker or manager nodes:
$docker swarm join-token --rotate worker To add a worker to this swarm, run the following command: docker swarm join \ --token SWMTKN-1-2kscvs0zuymrsc9t0ocyy1rdns9dhaodvpl639j2bqx55uptag-ebmn5u927reawo27s3azntd44 \ 172.17.0.2:2377