参考:《第一本docker书》
https://segmentfault.com/a/1190000011690239
https://www.cnblogs.com/znicy/p/7727413.html
环境准备:
1.三台服务器:service1,service2,service3
2.zookeeper集群
3.docker已经安装在计算机
说明:
由于我也是刚接触docker,只说具体的操作,关于理论原理的内容暂不作说明,后期再慢慢补上。
文中难免有错误之处,欢迎大家指正。
我的系统环境为:ubuntu16.04
开始进入正题:
1.拉取swarm镜像
>>docker pull swarm
2.做一些配置:
docker守护进程,默认不支持tcp socket访问。
需要修改/etc/default/docker文件开启tcp socket连接的功能增加如下内容:
>>dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
由于我这样修改了之后后面还是会出错,所以我想到在docker daemon启动时来修改监听:
停止服务>>service docker stop
启动 >>dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
如此一来在后面将不会再报错。
3.创建集群
三天服务器,我们使用service1来管理
(1)通过zkClient创建一个zk节点/swarm-agent用于后续存储swarm agent的信息:
>>zkCli.sh -server service1:2181,service2:2181,service3:2181
>>create /swarm-agent
(2)启动集群节点
service2>>docker run --name swarm-agent -d swarm join --addr=service2:2375 zk://service1:2181,1service2:2182,service3:2183/swarm-agent
service3>>docker run --name swarm-agent -d swarm join --addr=service3:2375 zk://service1:2181,1service2:2182,service3:2183/swarm-agent
service1>>docker run --name swarm-manage -d -p 2380:2375 swarm manage zk://service1:2181,1service2:2182,service3:2183/swarm-agent
(3)查看集群
>>docker -H tcp://localhost:2380 info
(4)之后就可以docker -H tcp://localhost:2380 * 来操集群