1、本节介绍一下stack的操作
2、环境介绍
| 主机名 | IP地址 | 节点类别 |
| kub01 | 172.16.172.71 | manager |
| kub02 | 172.16.172.72 | worker |
| kub03 | 172.16.172.73 | worker |
3、启动环境
#在kub01初始化swarm,会输出一个token
sudo docker swarm init --advertise-addr 172.16.172.71
#kub02和kub03加入该swarm
sudo docker swarm join \
--token SWMTKN-1-249jjodetz6acnl0mrvotp3ifl4jnd2s53buweoasfedx695jm-cdjp3v2jjq2ndfxlv8o2g49n9 \
172.16.172.71:2377
#查看节点信息
sudo docker node ls
4、新建docker-compose.yml文件
version: "3"
services:
web:
image: myserver:1.0.0
deploy:
replicas: 10
restart_policy:
condition: on-failure
resources:
limits:
cpus: "0.1"
memory: 64M
ports:
- "8080:8080"
networks:
- webnet
visualizer:
image: dockersamples/visualizer:stable
ports:
- "8090:8080"
volumes:
- "/var/run/docker.sock:/var/run/docker.sock"
deploy:
placement:
constraints: [node.role == manager]
networks:
- webnet
redis:
image: redis:3.2
ports:
- "6379:6379"
volumes:
- /home/hiup/dockervisual/data:/data
deploy:
placement:
constraints: [node.role == manager]
command: redis-server --appendonly yes
networks:
- webnet
networks:
webnet:
5、需要确认的信息
要保证三个镜像都是可用的
要保证redis的数据文件夹是可用的
三个服务的networks是一样的
6、启用stack
#启动stack sudo docker stack deploy -c docker-compose.yml mystack01 #查看stack sudo docker stack ls #查看服务 sudo docker service ls
7、用浏览器打开本地8080端口,可以在visualizer看到各容器的状态
8、停止stack
停止 sudo docker stack rm mystack01
9、节点退出swarm
#kub02和kub03退出swarm sudo docker swarm leave #kub01退出swarm,由于最后一个管理node也退出了,swarm结束 sudo docker swarm leave --force