注意:
docker在版本1.12之后,已经将swarm的部分集成在docker里面了,所以也就不需要依赖第三方的东西了。
所以如果不是为了有趣了解一下的话,请直接转到本系列的第三篇开始=》搭建Docker Swarm集群实战(三)(swarm mode)
个人建立的Docker爱好者交流QQ群:472149402,欢迎大家来此交流经验和问题,一起成长。
前言
Docker Swarm是docker的原生的集群解决方案。它可以让你使用一些docker的工具来统一管理一池子的docker host。
首先Docker Swarm依赖于一个Manager(其实就是Swarm Master)。Manager管理和调度所有集群上的container。而这些被管理的container就可以分布在集群的各个Docker Host中(我们称之为Swarm Nodes)
其次,集群中的Swarm Master和Swarm Nodes互相之间的节点发现,Docker公司提供了若干种实现方式,我们这里使用consul来实现。关于consul,大家可以去https://www.consul.io/了解详细。
最后顺便提一下,这里由于我只有一台电脑,所以为了模拟多台电脑,并且每一台电脑都有一个docker host,我使用了docker-machinel来创建不同的docker host的节点。关于docker-machine的详细这里就省略。
确认宿主的各个组件的版本
我使用的笔记本是mac book,所以有一些东西的安装可能根据自身的环境有所不同。
$ docker-machine version
docker-machine version 0.8.1, build 41b3b25
$ docker version
Client:
Version: 1.12.1
API version: 1.24
Go version: go1.7.1
Git commit: 6f9534c
Built: Thu Sep 8 10:31:18 2016
OS/Arch: darwin/amd64
Server:
Version: 1.12.1
API version: 1.24
Go version: go1.6.3
Git commit: 23cf638
Built: Thu Aug 18 17:52:38 2016
OS/Arch: linux/amd64
$ docker-compose version
docker-compose version 1.8.0, build f3628c7
docker-py version: 1.9.0
CPython version: 2.7.9
OpenSSL version