Docker Swarm 是 Docker公司官方发布的一套管理 Docker 集群的工具
主机
|
ip
|
角色
|
dc01
|
192.168.234.139
|
swarm manager
|
dc02
|
192.168.234.140
|
swarm
|
dc03
|
192.168.234.141
|
swarm
|
I. swarm安装使用
1. 安装swarm
docker pull swarm
2. 查看swarm 版本
docker run --rm swarm -v
swarm version 1.2.1 (9a968f5)
3. 修改3台docker主机的启动文件,设定一个集群监听端口
vim /lib/systemd/system/docker.service
ExecStart=/usr/bin/docker -b=br0 daemon -H 0.0.0.0:2375 -H fd://
![](/attachment/201605/10/26118446_1462845274X7KH.png)
4. 在三台主机上配置防火墙,保证2375端口可以访问(也可以关闭firewalld)
5. 在任意docker 主机上创建一个token,作为swarm集群的唯一标识验证
docker run --rm swarm create
4e58e8fc16302295d96518c67cc09351
6. 在三台机器上分别执行以下命令,加入swarm集群
docker run -d swarm join --addr=192.168.234.139:2375 token://4e58e8fc16302295d96518c67cc09351
docker run -d swarm join --addr=192.168.234.140:2375 token://4e58e8fc16302295d96518c67cc09351
docker run -d swarm join --addr=192.168.234.141:2375 token://4e58e8fc16302295d96518c67cc09351
7. 在dc01主机上启动swarm manage
docker run -d -p 2376:2375 swarm manage token://
4e58e8fc16302295d96518c67cc09351
8. 可以在任意主机上查看docker集群主机列表
docker run --rm swarm list token://
4e58e8fc16302295d96518c67cc09351
![](/attachment/201605/10/26118446_1462846001358K.png)
9. 查看docker 集群相信信息
10. 我们还可以使用文件来启动一个swarm集群,不用再每台主机上join
>1 cat /mnt/cluster
192.168.234.140:2375
192.168.234.141:2375
192.168.234.139:2375
>2 启动集群,后边不需要跟token
docker run -d -p 2376:2375 -v /mnt/cluster:/tmp/cluster swarm manage file:///tmp/cluster
>3 查看集群状态
docker run --rm -v /mnt/cluster:/tmp/cluster swarm list file:///tmp/cluster
![](/attachment/201605/10/26118446_1462850534DvDr.jpg)
>4 查看集群信息
docker -H 192.168.234.139:2376 info
![](/attachment/201605/10/26118446_1462850621zZbX.jpg)
11.我们在集群上启动一个容器测试
docker -H 192.168.234.139:2376 run --name web1 -d nginx
我们通过docker ps命令,在dc02 上看到启动了一台nginx容器
II. 调度
swarm 调度策略
swarm支持多种调度策略来选择节点。每次在swarm启动container的时候,swarm会根据选择的调度策略来选择节点运行container。目前支持的有:spread,binpack和random。
docker run -d -p 2376:2375 -v /mnt/cluster:/tmp/cluster swarm manage --strategy=binpack file:///tmp/cluster
III. 过滤器
Constraint Filter 配置容器运行在哪台host上
Affinity Filter 没看懂
Port Filter 配置端口;只要被占用了,其他需要此端口的容器就会启动失败
参考:http://blog.csdn.net/wangtaoking1/article/details/46731913
阅读(1401) | 评论(0) | 转发(0) |