Docker Swarm
Docker Swarm
Docker Swarm Initialization
1.Install Docker and initial
Skip
2. Initialize Docker Swarm Cluster
Select everyone to set up cluster.
1
docker swarm init --advertise-addr <cluster_ip>
You can get a swarm token like this ddocker swarm join --token SWMTKN-1-2142i8zn <cluster_ip>:2377
- If you want mutiple managers, use
docker swarm join-token managerto get manager token.docker swarm join-token workerto get worker token. - We can also use
docker node promote <NODE_NAME>to promote a node to manager.
3. Add Nodes
Use docker swarm join --token SWMTKN-1-2142i8zn <cluster_ip>:2377 to add nodes.
4. Remove Nodes
Use docker swarm leave to remove nodes.
5. View Nodes and Services
Use docker node ls to view nodes. Use docker service ls to view services.
Docker Swarm Configuration Examples
1. Create a nginx service
1
docker service create --name test-nginx --publish 80:80 --replicas 3 nginx
2. Check service status
1
2
docker service ls
docker service ps test-nginx # check nginx service
3. Scale service
1
docker service scale test-nginx=5
4. Remove service
1
docker service rm test-nginx
Docker Swarm Compose
1. Docker Compose file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
version: '3.8'
services:
web:
image: nginx:latest
hostname: "-"
ports:
- "80:80"
deploy:
replicas: 3
restart_policy:
condition: on-failure
placement:
constraints:
- node.role == worker
networks:
- webnet
networks:
webnet:
placement.constraints means the node must be a worker node. It is optional.
2. Run Compose
1
docker stack deploy -c docker-compose.yaml test_nginx
3. Change replicas number
Modify replicas number in docker-compose.yaml, and run Compose again.
1
docker stack deploy -c docker-compose.yaml test_nginx
4. Remove Compose
1
docker stack rm test_nginx
This post is licensed under CC BY 4.0 by the author.