arrow_back
Back

Docker Swarm commands: cluster, services, and stacks

Andrew Dorokhov Andrew Dorokhov schedule 2 min read
menu_book Table of Contents

docker swarm init

Initialize a manager node.

docker swarm init --advertise-addr <PRIVATE_IP>

--advertise-addr is the address other nodes use to reach the API. After init, a join token is printed for adding workers and managers.

docker swarm join

Add a worker or manager node to the cluster.

docker swarm join --token <TOKEN> <PRIVATE_IP>:2377

docker swarm join-token

Retrieve a join token for workers or managers.

docker swarm join-token worker
docker swarm join-token manager

docker swarm leave

Remove the current node from the swarm. Run after the manager removes the node with docker node rm.

docker swarm leave

docker node ls

List nodes in the swarm.

docker node ls

docker node inspect

Display detailed information about a node.

docker node inspect <NODE_ID>

docker node promote / demote

Change a node’s role between worker and manager.

docker node promote <NODE_ID>
docker node demote <NODE_ID>

docker node rm

Remove a node from the swarm.

docker node rm <NODE_ID>

docker service create

Create a service.

docker service create -d --name <NAME> \
    -p <HOST_PORT>:<CONTAINER_PORT> \
    --replicas <REPLICAS> \
    <IMAGE> [CMD]

With a specific network:

docker service create -d --name <NAME> \
    --network <NETWORK> \
    -p <HOST_PORT>:<CONTAINER_PORT> \
    --replicas <REPLICAS> \
    <IMAGE> [CMD]

Pass secrets (mounted at /run/secrets/<SECRET>):

docker service create --name <NAME> --secret <SECRET> <IMAGE>

docker service ls / inspect / ps / logs / scale / update

docker service ls
docker service inspect <SERVICE>
docker service ps <SERVICE>
docker service logs <SERVICE>
docker service scale <SERVICE>=<REPLICAS>
docker service update <SERVICE>

docker stack deploy

Deploy a stack from a Compose file.

docker stack deploy --compose-file docker-compose.yml my_stack

docker secret

Secrets work only in Swarm mode.

Create from STDIN:

openssl rand -base64 20 | docker secret create my_secret_data -

Create from a file:

openssl rand -base64 20 > secret.txt
docker secret create my_secret_data2 secret.txt
docker secret ls
docker secret inspect <SECRET>
docker secret rm <SECRET>

docker plugin

Install and manage plugins.

docker plugin install <PLUGIN> [OPTIONS]
docker plugin ls
docker plugin disable <PLUGIN>
docker plugin rm <PLUGIN>

Volume plugin examples: Hedvig, Pure Storage, HPE Nimble Storage, Nutanix DVP, Blockbridge, NexentaStor, StorageOS, open_in_new Rex-Ray .

code

Need Help with Development?

Happy to help — reach out via the contacts or go straight to my Upwork profile.

work View Upwork Profile arrow_forward
Next Article

Docker storage: volumes, bind mounts, and persistence

arrow_forward