简介
swarm是一种docker集群管理工具,跟三剑客前两者不同的是;compose是一种统一编排的工具,machine是一种远程控制工具,swarm则是将多个docker主机映射成一个docker集群,进行管理;swarm通过CLI创建管理集群,当应用程序部署到swarm集群时,swarm集群对其进行管理。
swarm先决条件
- 三台以上互通的机器,可以是Linux或者mac os或者windows
- 安装docker引擎
- 配置好machine管理
- 开放指定的端口(2377、7946、4789)
基础命令
docker swarm init:初始化集群;可加入autolock设置集群锁,设定集群锁之后管理节点每次重启必须输入密码
docker swarm join:加入到集群
docker swarm ca:查看管理节点的证书信息,必须是管理节点运行此命令
docker swarm join-token:管理连接令牌
docker swarm leave:强行离开集群,忽略警告
docker swarm unlock:解锁群
docker swarm unlock-key:解除群锁
docker swarm update:更新群内容 docker service create:创建一个服务
docker service rm :删除一个服务
docker service ps :查看一个服务状态
docker service logs:查看一个服务的运行日志
docker service ls:查看存在的服务
docker service inspect:查看指定服务的详情
docker service scale:服务数目的动态调整
docker service update:更新服务 docker node demote:将一个或多个指定的管理节点降为工作节点
docker node inspect:显示指定的节点详情
docker node ls:查看集群状态
docker node promote:将一个或多个指定的节点提升为管理节点
docker node ps :列出一个或多个节点上运行的任务,默认为当前节点
docker node rm :从集群中删除一个指定节点
docker node update:更新有关节点的元数据 docker secret create:创建一个加密密码
docker secret inspect:查看指定加密密码详情
docker secret ls:查看已有的加密密码
docker secret rm:删除一个指定的加密密码
实例
manager:docker swarm init --advertise-addr x.x.x.x
worker1:docker swarm join--token xx..x x.x.x.x:
worker2:docker swarm join--token xx..x x.x.x.x: docker service create --replicas --update-delay 10s --name helloworld alpine ping docker.com
--name:指定服务运行的名称
--replicas:指定运行的实例数
--update-delay:设定多个容器之间的创建间隔时间
--publish-add:添加随机映射端口
--publish-rm:删除随意
--env <value>=<str>:设定容器的环境变量
--workdir <directory>:设定容器的运行目录
--user <user>:指定容器的运行用户
--args <commond>:更新现有运行的命令
alpine:表示底层镜像
ping docker.com:表示镜像启动后执行的内容 docker service inspect <SERVICE-ID>
--pretty:友好的格式打印信息
参考地址:
- https://cloud.tencent.com/developer/section/1091937
- https://docs.docker.com
- https://yeasy.gitbooks.io/docker_practice/content/swarm_mode/rolling_update.html