#docker swarm集群
#环境 centos 7,docker-ce v17.12
#manager节点ip172.16.50.21
#创建swarm集群(默认manager节点)
docker swarm init#docker swarm join-token manager …… #添加manager节点#多ip需要指定ip地址#docker swarm init --listen-addr 172.16.50.21:2377 --advertise-addr 172.16.50.21
#看提示得到加入集群的命令,在node节点执行
docker swarm join --token SWMTKN-1-16xuzm7lxqydugp~~~******** 172.16.50.21:2377
#查看集群节点
docker node ls
#创建nginx服务
#docker pull hub.test.com:5000/almi/nginx:0.1 #下载私有仓库镜像docker service create --name nginx --replicas 2 --publish 80:80 hub.test.com:5000/almi/nginx:0.1#--network=swarm_test#replicas 2 创建2个容器,hub.test.com为私有仓库
#查看swarm集群中的服务
docker service lsdocker service ps nginx
#kill其中一个容器
docker kill 96e6bccc2209#等会自动启动一个新的容器
#修改服务实例数量为3
docker service scale nginx=3
#删除nginx服务
docker service rm nginx
#删除swarm节点
docker swarm leave --force #nodedocker node rm -f #manager
#docker swarm 常用命令
docker swarm init #初始化集群docker swarm join-token worker #查看工作节点的 tokendocker swarm join-token manager #查看管理节点的 tokendocker swarm join #加入集群中
#docker node 常用命令
docker node ls #查看所有集群节点docker node rm #删除某个节点(-f强制删除)docker node inspect ##查看节点详情docker node demote #节点降级,由管理节点降级为工作节点docker node promote #节点升级,由工作节点升级为管理节点docker node update #更新节点docker node ps #查看节点中的 Task 任务
#docker service 常用命令
docker service create #部署服务docker service inspect #查看服务详情docker service logs #产看某个服务日志docker service ls #查看所有服务详情docker service rm #删除某个服务(-f强制删除)docker service scale #设置某个服务个数docker service update #更新某个服务
#++++++++++++++++++++++++++++++
#Docker Stack 部署多个集群服务
#docker stack使用编排文件docker-compose.yml批量部署服务
#创建编排文件docker-compose.yml
mkdir mydocker ; cd mydockerecho "# docker stackversion: '3'services: mynginx: image: hub.test.com:5000/almi/nginx:0.1 ports: - "8081:80" deploy: replicas: 3 busybox: image: hub.test.com:5000/busybox:latest volumes: - "/var/run/docker.sock:/var/run/docker.sock" deploy: replicas: 2#">docker-compose.yml
#使用docker-compose.yml批量创建服务
docker stack deploy -c docker-compose.yml deploy-testdocker stack ps deploy-test#容器名称 deploy-test_ .随机后缀
#查看
docker service lsdocker ps
#docker stack 常用命令
docker stack deploy #部署新的堆栈或更新现有堆栈docker stack ls #列出现有堆栈docker stack ps #列出堆栈中的任务docker stack rm #删除堆栈docker stack services #列出堆栈中的服务docker stack down #移除某个堆栈(不删数据)
#++++++++++++++++++++++++++++++
参考
https://www.cnblogs.com/xishuai/p/docker-swarm.htmlhttps://www.cnblogs.com/wj5633/p/6963591.htmlhttp://blog.csdn.net/wanglei_storage/article/details/77508620
#++++++++++++++++++++++++++++++