docker swarm是一个轻量级的集群部署工具。
docker swarm搭建
1.准备三台服务器
2.初始化管理节点
docker swarm init --advertise-addr 10.201.4.68
输入docker info
查找Swarm属性
3.查看普通节点加入命令docker swarm join-token worker
[root@n468 ~]# docker swarm join-token worker
To add a worker to this swarm, run the following command:
docker swarm join --token SWMTKN-1-0w7nstltaynzylyrikwov6djdc362x3d52k6d3eyzh7sw681uo-9yt1c6jeep7nttekoc5vf6v9a 10.201.4.68:2377
[root@n468 ~]#
4.在普通节点执行上面命令
输入docker info
查找Swarm属性
5.查看docker集群状态
docker node ls
docker swarm相关命令及部署
1.节点激活和下线
docker node update --availability drain n470
docker node update --availability active n470
2.docker overlay网络相关
//创建nginx_net网络
docker network create -d overlay nginx_net
docker network ls
3.docker service 部署服务和服务的动态伸缩
//部署服务
docker service create --replicas 1 --network nginx_net --name my_nginx -p 80:80 nginx
//动态伸缩服务
docker service scale my_nginx=4
//查看服务
docker service ls
docker service ps my_nginx
docker service inspect --pretty my_nginx
docker service scale my_nginx=1
docker service update --replicas 3 my_nginx
4.删除节点(三步操作)
//让 node3 离开,排空 node3 的容器(在 master 上操作)
docker node update --availability drain 6whtoqrhkzv3ax4xy9ab20gmy
//让 node3 主动离开集群,让节点处于down状态 (在 node3 上操作)
docker swarm leave
//删除 node节点(在 master 上操作)
docker node rm 6whtoqrhkzv3ax4xy9ab20gmy
5.服务部署,挂载目录
docker volume ls
docker volume create myvolume
docker service create --replicas 1 --mount type=volume,dst=/usr/share/nginx/html/,src=myvolume --network nginx_net --name zjz_nginx -p 80:80 nginx
docker-stack.yml编写和部署
version: "3"
services:
nginx:
image: nginx
ports:
- 8888:80
deploy:
mode: replicated
replicas: 3
visualizer:
image: dockersamples/visualizer
ports:
- 8889:8080
volumes:
- "/var/run/docker.sock:/var/run/docker.sock"
deploy:
replicas: 1
placement:
constraints: [node.role == manager]
//发布命令
docker stack deploy -c docker-stack.yml deploy_daemon
//相关查看展示命令
docker stack ls
docker stack services deploy_daemon
docker stack ps deploy_daemon
portainer管理swarm集群
1.管理节点安装
docker pull portainer/portainer
docker run -d -p 9000:9000 --restart=always --name prtainer portainer/portainer
2.访问9000端口,登录web端页面
登录之前需要选择Remote方式,配置主节点ip
3.将其他节点添加进来
管理界面比较简单,可自行摸索相关功能。