什么是docker swarm?
docker swarm可以看做是一组docker引擎的集群,主要作用是把若干台 Docker 主机 抽象为一个整体,并且通过一个入口统一管理这些 Docker 主机上的各种 Docker 资源。
swarm中的概念
![](https://img.haomeiwen.com/i10185696/11fc46a46e35d9d8.png)
- swarm:是一组 docker 引擎的集群
- node:是单个 docker 引擎的实例,可以在一个物理机上也可以在多个
- manager node:部署应用的时候会有一个 manager node 节点
- Worker nodes:对应的就是 Worker nodes
- service:然后 service 是一堆被 workder 执行的任务
- task:一个 task 就是一个 docker 的容器,是 Swarm 的工作单元
一、 搭建docker swarm
1.规划三台虚拟机
docker1(192.168.31.111)
docker2(192.168.31.112)
docker3(192.168.31.113)
2.修改docker配置文件
vi /lib/systemd/system/docker.service
替换 ExecStart= 这一行,监听docker客户端端口
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
重启 docker 服务:
systemctl daemon-reload
systemctl restart docker
3.创建管理节点
docker swarm init --advertise-addr 192.168.31.111
返回消息,这条消息就是加入docker swarm的命令
docker swarm join --token SWMTKN-1-1wzthyfpy46n9jyxfif2r1r89u5t8ky1ooo41modyut4u73nhb-bpajtf0plid1qdhsk3wg6h2zo 192.168.31.111:2377
在另外两台虚拟机执行以上命令,即可加入集群
4.查看集群机器
docker node ls
5.节点退出
在要退出集群的节点上执行
docker swarm leave
6.添加管理节点
在管理节点虚拟机执行 docker swarm join-token manager 得到加入指令
然后在需要加入的虚拟机中执行
二、服务管理
swarm 环境搭建成功后,整个工作节点集群,都可以当做一个宿主机来操作了。
1.创建服务
创建一个nginx 集群,三个副本
docker service create --name nginx --replicas 3 -p 80:80 nginx:1.9.7
2.查看服务列表
docker service ls
- 查看服务详情
docker service ps nginx
这时候,可以在浏览器中进行访问,访问三台机器的任意iP都能访问到,docker swarm会将请求随机负载到一台机器。
- 滚动升级
docker service update --image nginx:1.9.7 nginx
5.动态扩容
docker service scale nginx=4
三 、 更多命令
docker swarm:集群管理,
---子命令有 init, join, leave, update。
(docker swarm –help 查看帮助)
docker service:服务创建,
---子命令有 create, inspect, update, remove, tasks。
(docker service–help 查看帮助)
docker node:节点管理,
---子命令有 accept, promote, demote, inspect, update, tasks, ls, rm。
(docker node –help 查看帮助)
网友评论