Docker 1.12.0 Swarm

docker1.12 Swarm 模式简介

  1. Docker Engine 1.12 集成了Swarm集群工具.
  2. 主要使用三个新的命令行工具创建一个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


Docker 1.12.0 Swarm_第1张图片
swarm1.png

其中:--advertise-addr参数, 后面跟你swarm集群的通讯地址, 也就是node01的地址.

范例1:(在10.2.3.222上操作,初始化docke swarm集群)
docker swarm init --advertise-addr 10.2.3.222

根据如上命令的提示:
我们的其他节点服务器,以worker角色加入swarm集群需要登录到服务器运行如下命令:

swarm2.png
范例2:(在10.2.2.57上操作,将该服务器添加到docker swarm集群,角色是worker)
docker swarm join     --token SWMTKN-1-27bntgu5pjrf1kl45d5wwtdg0k5m67275f8cj8w5psw4vs0uqi-2ufj9wdmemicdbfelhu25p85y     10.2.3.222:2377

以manager角色加入swarm集群:

swarm3.png
范例3:(在10.2.2.58上操作,将该服务器添加到docker swarm集群,角色是manager)
docker swarm join     --token SWMTKN-1-27bntgu5pjrf1kl45d5wwtdg0k5m67275f8cj8w5psw4vs0uqi-6drtfk91r9agxymegocsd4626     10.2.3.222:2377

检查node01docker swarm mode信息:

Docker 1.12.0 Swarm_第2张图片
swarm4.png

查看swarm集群node列表

  • docker node ls
swarm5.png

可以看到,我们的swarm集群中只有一个节点.现在我们把其他节点加入我们的集群中:
在node01通过ssh, 在node02-node05上执行上面的加入集群命令:

Docker 1.12.0 Swarm_第3张图片
swarm6.png

可以看到,我们的swarm集群中只有一个节点.现在我们把其他节点加入我们的集群中:
在node01通过ssh, 在node02-node05上执行上面的加入集群命令:

如果你不记得上面提示的加入swarm集群的命令和密钥可以使用如下方式查看worker节点和manager节点的加入命令

docker swarm join-token worker
docker swarm join-token manager

再次检查集群节点列表, 我们可以看到所有的服务器都已经加入swarm集群了

Docker 1.12.0 Swarm_第4张图片
swarm7.png

不过现在我们的集群只有一个manager节点node01, 为了swarm集群的高可用,和避免单点故障. 我们希望建立多个manager节点集群.
只需要通过如下命令, 提升node02和node03节点成manager节点:

docker node promote node02 node03
Docker 1.12.0 Swarm_第5张图片
swarm8.png

现在我们可以看到, 已经有2个manager节点了, 一个Leader节点, 两个Reachable节点. 现在你也可以在node02和node03上面管理整个swarm集群.

Docker 1.12.0 Swarm_第6张图片
swarm9.png

在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
swarm10.png
docker service ps 命令可以查看服务到底跑在哪个节点服务器上:
docker service ps test 
swarm11.png

Scale扩展服务

将test扩展到10副本

docker service scale test=10
swarm13.png

查看service进程检查


Docker 1.12.0 Swarm_第7张图片
swarm14.png

删除服务

使用docker service rm 命令删除服务.
docker service rm test

参考网址

  • http://www.tuicool.com/articles/NfQJr2y

你可能感兴趣的:(Docker 1.12.0 Swarm)