docker1.12 Swarm 模式简介
- Docker Engine 1.12 集成了Swarm集群工具.
- 主要使用三个新的命令行工具创建一个swarm集群:
2.1. docker swarm 开启swarm模式; 加入Swarm集群; 配置集群参数
2.2. docker node 查询集群节点信息; 提升/移除一个管理节点; 管理swarm节点主机
2.3. docker service 创建管理 service
创建 Swarm集群
初始化swram集群:
- 注意:只需要在一个node上初始化swarm集群, 其他node加入这个集群就行了, 所以一下命令只需要在node01上运行.
命令:docker swarm init --advertise-addr 192.168.33.101
其中:--advertise-addr参数, 后面跟你swarm集群的通讯地址, 也就是node01的地址.
范例1:(在10.2.3.222上操作,初始化docke swarm集群)
docker swarm init --advertise-addr 10.2.3.222
根据如上命令的提示:
我们的其他节点服务器,以worker角色加入swarm集群需要登录到服务器运行如下命令:
范例2:(在10.2.2.57上操作,将该服务器添加到docker swarm集群,角色是worker)
docker swarm join --token SWMTKN-1-27bntgu5pjrf1kl45d5wwtdg0k5m67275f8cj8w5psw4vs0uqi-2ufj9wdmemicdbfelhu25p85y 10.2.3.222:2377
以manager角色加入swarm集群:
范例3:(在10.2.2.58上操作,将该服务器添加到docker swarm集群,角色是manager)
docker swarm join --token SWMTKN-1-27bntgu5pjrf1kl45d5wwtdg0k5m67275f8cj8w5psw4vs0uqi-6drtfk91r9agxymegocsd4626 10.2.3.222:2377
检查node01docker swarm mode信息:
查看swarm集群node列表
- docker node ls
可以看到,我们的swarm集群中只有一个节点.现在我们把其他节点加入我们的集群中:
在node01通过ssh, 在node02-node05上执行上面的加入集群命令:
可以看到,我们的swarm集群中只有一个节点.现在我们把其他节点加入我们的集群中:
在node01通过ssh, 在node02-node05上执行上面的加入集群命令:
如果你不记得上面提示的加入swarm集群的命令和密钥可以使用如下方式查看worker节点和manager节点的加入命令
docker swarm join-token worker
docker swarm join-token manager
再次检查集群节点列表, 我们可以看到所有的服务器都已经加入swarm集群了
不过现在我们的集群只有一个manager节点node01, 为了swarm集群的高可用,和避免单点故障. 我们希望建立多个manager节点集群.
只需要通过如下命令, 提升node02和node03节点成manager节点:
docker node promote node02 node03
现在我们可以看到, 已经有2个manager节点了, 一个Leader节点, 两个Reachable节点. 现在你也可以在node02和node03上面管理整个swarm集群.
在Swarm集群上运行service
基本上原来我们使用docker run的命令, 把前面替换成docker service create就行了.
使用docker service命令去创建容器服务.
docker service create --name test --publish 3022:22 --publish 3080:80 --replicas 3 10.2.3.223:5000/base:v1.2.1_autoserver
- --name 容器名称
- --publish 端口映射
- --replicas 副本数
查询 swarm service列表, 我们可以看到刚刚创建的service:
docker service ls
docker service ps 命令可以查看服务到底跑在哪个节点服务器上:
docker service ps test
Scale扩展服务
将test扩展到10副本
docker service scale test=10
查看service进程检查
删除服务
使用docker service rm 命令删除服务.
docker service rm test
参考网址
- http://www.tuicool.com/articles/NfQJr2y