Docker之Swarm管理
1. Swarm基础
1. Docker Swarm命令
1. swarm初始化
docker swarm init,下面是一些选项
             
          
2. 加入集群
docker swarm join,它包含四个选项
            
3. 管理添加节点的口令
docker swarm join-token
4. 离开集群
docker swarm leave
-f 强制离开,无视警告
5. 解锁集群
docker swarm unlock
6. 管理解锁密钥
docker swarm unlock-key
7. 更新集群
docker swarm update,选项如下:
             
         
2. Docker Node命令
1. 节点降级
docker node demote NODE
2. 查看节点信息
docker node inspect [OPTIONS] self |NODE
--format,-f 使用Go template格式化输出信息
--pretty 用适合人们阅读的格式输出信息
3. 列出集群节点
docker node ls [OPTIONS]
--filter,-f 用过滤器输出指定信息
--quiet,-q 只显示节点ID
4. 提升节点权限
docker node promote NODE
提升和降级都是只能在管理节点才能执行的命令
5. 查看任务
docker node ps [OPTIONS]
--filter,-f 使用过滤器获取特定信息
--no-resolve 不把ID映射到名称上
--no-trunc 不截断输出ID
6. 删除节点
docker node rm
7. 更新节点
docker node update [OPTIONS] NODE
            
3. Docker Stack命令
1. 部署Docker栈
docker stack deploy
2. 查看所有栈
docker stack ls
3. 查看栈内任务
docker stack ps [OPTIONS] STACK
--filter,-f 使用过滤器获取指定信息
--no-resolve 不把ID映射到名称上
--no-trunc 不截断输出ID
4. 删除栈
docker stack rm STACK
5. 查看栈内的服务
docker stack services [OPTIONS] STACK
--filter,-f 使用过滤器获取指定信息
--format,-f 使用Go template格式化输出信息
--pretty 用适合人们阅读的格式输出信息
2. Swarm集群部署
1. 运行环境
172.16.1.232 master-node
172.16.1.233 node1
172.16.1.234 node2
关闭防火墙,关闭selinux
三个节点都安装docker
2. 初始化swarm集群
docker swarm init --advertise-addr 172.16.1.232 --listen-addr 172.16.1.232:2377
执行完以后,会产生一个token,全球唯一的。
3. 添加节点到swarm集群中
分别在node1和node2上,执行命令
docker swarm join --token SWMTKN-1-4roc8fx10cyfgj1w1td8m0pkyim08mve578wvl03eqcg5ll3ig-f0apd81qfdwv27rnx4a4y9jej 172.16.1.232:2377
4. 在管理节点查看一下状态
docker node ls
5. 下线node1
docker node update --availability drain node1
6. 恢复node1
docker node update --availability active node1
7. 删除node1
docker node rm --force node1
3. Swarm网络配置
1. swarm上默认已有一个名为ingress的overlay网络,通过docker network ls可以查看
2. 新建一个overlay网络
docker network create --driver overlay ngx_net
3. 创建应用服务
docker service create --replicas 2 --network ngx_net --name my-test -p 80:80 nginx
4. 查看服务状态
docker service ls
5. 查看服务详情
docker service ps my-test
4. Swarm动态扩展服务
1. 将my-test扩展到5个
docker service scale my-test=5
2. 查看各个容器在哪些机器
docker service ps my-test
3. 如果node1宕机或者服务停止,node1上的容器会自动转移到其他节点。
5. Swarm升级镜像
docker service update --image nginx:new my-test
6. Swarm使用volume
1. volumes
1. 创建一个数据卷
docker volume create --name myvolume
2. 创建服务
docker service create --replicas 2 --network ngx_net --mount type=volume,src=myvolume,dst=/yangjianbo --name my-test -p 80:80 nginx
src为/var/lib/docker/volumes/myvolume/_data
dst为容器内部的目录
2. bind mounts
1. 创建一个数据卷
docker volume create --name myvolume
2. 创建服务
docker service create --replicas 2 --network ngx_net --mount type=bind,src=/home/yangjianbo,dst=/yangjianbo --name my-test -p 80:80 nginx
src为宿主机上任意一个目录
dst为容器内部的目录
7. Swarm集群管理工具Shipyard
 
                    
                
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号