Docker Swarm
Docker Swarm
Docker Swarm Initialization
1.Install Docker and initial
Skip
2. Initialize Docker Swarm Cluster
Select everyone to set up cluster.
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
docker service create --name test-nginx --publish 80:80 --replicas 3 nginx2. Check service status
docker service lsdocker service ps test-nginx # check nginx service3. Scale service
docker service scale test-nginx=54. Remove service
docker service rm test-nginxDocker Swarm Compose
1. Docker Compose file
version: '3.8'
services: web: image: nginx:latest hostname: "{{.Service.Name}}-{{.Task.Slot}}" 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
docker stack deploy -c docker-compose.yaml test_nginx3. Change replicas number
Modify replicas number in docker-compose.yaml, and run Compose again.
docker stack deploy -c docker-compose.yaml test_nginx4. Remove Compose
docker stack rm test_nginx