最新消息
Docker在上周的DockerCon技术大会上发布了1.12版核心产品Docker Engine,最大的新特性是Docker Swarm已经被整合到了Docker Engine里面而不再是一个单独的工具了,这样就可以更容易的把多个Docker主机组合成一整个规模更大可靠性更高的逻辑单元。Docker的掌舵者 Adrian Mouat相信这种新的集群模式可以大大增强Docker在相关领域的竞争力。
把Docker Swarm整合进Docker Engine是一个重大改进,但它也只是一个附加功能,你可以只在需要的时候才使用它。你可以用和以前一样的方式来安装、运行和升级Docker 1.12,而且它也对已有的容器镜像和工具向后兼容。
以上是关于Swarm的最新发展,你可以深切的感受到开源力量对一个技术的快速迭代,相比较一个公司使用激励机制提高员工的积极性,开源的思想让那些有共同理想的技术天才共同协作,为科技的发展提供动力。一点感慨而已!
当然,我们先了解一下现在Swarm的状况,对学习未来的Swarm还是很有帮助的。
Swarm 简介
Swarm是Docker公司在2014年12月初新发布的容器管理工具。和Swarm一起发布的Docker管理工具还有Machine以及Compose。Swarm是一套较为简单的工具,用以管理Docker集群,使得Docker集群暴露给用户时相当于一个虚拟的整体。Swarm使用标准的Docker API接口作为其前端访问入口,换言之,各种形式的Docker Client均可以直接与Swarm通信
Swarm架构
Swarm作为一个管理Docker集群的工具,首先需要将其部署起来,可以单独将Swarm部署于一个节点。另外,自然需要一个Docker集群,集群上每一个节点均安装有Docker。具体的Swarm架构图可以参照下图:

Swarm架构中最主要的处理部分自然是Swarm节点,Swarm管理的对象自然是Docker Cluster,Docker Cluster由多个Docker Node组成,而负责给Swarm发送请求的是Docker Client。
Swarm deamon只是一个调度器(Scheduler)加路由器(router),Swarm自己不运行容器,它只是接受docker客户端发送过来的请求,调度适合的节点来运行容器,这意味着,即使Swarm由于某些原因挂掉了,集群中的节点也会照常运行,当Swarm重新恢复运行之后,它会收集重建集群信息。
Swarm集群部署
部署架构如下
我们有三台服务器,132机器作为Swarm Server服务器,其他服务器作为Docker集群的子节点。
1、132机器上下载Swarm镜像
docker pull swarm
2、在使用Swarm进行集群管理之前,需要先把准备加入集群的所有的节点的docker deamon的监听端口修改为0.0.0.0:2375,修改所有参与Swarm集群的服务器的/etc/default/docker,映射容器端口号.
DOCKER_OPTS="-H 0.0.0.0:2375 -H unix:///var/run/docker.sock"
重启docker 服务
3、在132机器上申请Swarm的token
root@controller:~# docker run --rm swarm create
88b70a0603a97f3e51be1d83f471a1df
该token是其他机器加入集群