Docker Swarm Cheat Sheet

Swarm cluster, node, service, and stack commands for container orchestration on Docker Engine.

View
StandardDetailedCompact
Export
Copy the compact sheet, download it, or print it.
Download
`D` dense toggle · `C` copy all
## Swarm Basics
Initialize swarm
docker swarm init

# Initialize the current engine as a swarm manager.

Initialize swarm with advertise address
docker swarm init --advertise-addr 10.0.0.10

# Initialize swarm and advertise a specific manager IP.

Show worker join token
docker swarm join-token worker

# Show or rotate the worker join token.

Show manager join token
docker swarm join-token manager

# Show or rotate the manager join token.

Join a swarm
docker swarm join --token <token> 10.0.0.10:2377

# Join a node to an existing swarm.

Leave the swarm
docker swarm leave

# Leave the current swarm.

List swarm nodes
docker node ls

# List nodes in the swarm.

Inspect a node
docker node inspect self

# Show low-level swarm node details.

Add node label
docker node update --label-add zone=us-east-1a worker-1

# Add or update node labels.

Drain a node
docker node update --availability drain worker-1

# Mark a node unavailable for task scheduling.

## Swarm Services
Create a service
docker service create --name web -p 8080:80 nginx:latest

# Create a replicated or global service in the swarm.

List services
docker service ls

# List swarm services.

List service tasks
docker service ps web

# List the tasks for a service.

Inspect a service
docker service inspect web

# Show low-level service details.

Scale a service
docker service scale web=5

# Scale a service to the desired replica count.

Update service image
docker service update --image nginx:1.27 web

# Roll out a new image for a service.

Update service env
docker service update --env-add LOG_LEVEL=debug web

# Update service environment variables.

Publish a new port
docker service update --publish-add 8443:443 web

# Add a published port to an existing service.

Rollback a service
docker service rollback web

# Rollback a service to the previous spec.

Remove a service
docker service rm web

# Remove a swarm service.

Deploy a stack
docker stack deploy -c compose.yaml mystack

# Deploy or update a swarm stack from a Compose file.

List stacks
docker stack ls

# List deployed stacks.

List services in stack
docker stack services mystack

# List services belonging to a stack.

List stack tasks
docker stack ps mystack

# List tasks for services in a stack.

Remove a stack
docker stack rm mystack

# Remove a deployed stack.