安装Swarm集群
环境信息
服务器:
- 192.168.99.100 centos-node1
- 192.168.99.101 centos-node2
- 192.168.99.102 centos-node3
集群信息:
- etc服务器: 192.168.99.100:2379
- swarm manage: 192.168.99.101:3376
- swarm-node1: 192.168.99.100:2375
- swarm-node2: 192.168.99.101:2375
- swarm-node3: 192.168.99.102:2375
准备
- 在所有的机器上安装dokcer
- 在centos-node1 上
docker pull ystyle/etcd
(官方的下载不了,自己做了个一样的) - 在所有机器上
dokcer pull swarm
- 以上三步可以用
docker-machine
完成 - 开放所有机器的
2375
端口,centos-node1
的2379
端口,centos-node2
的3376
端口
安装etcd k-v
数据库
在centos-node1上执行:
1 | 设置当前host的ip |
加入集群
在centos-node1执行:
1
docker run -d swarm join --addr=192.168.99.100:2375 etcd://192.168.99.100:2379/swarm
在centos-node2执行:
1
docker run -d swarm join --addr=192.168.99.101:2375 etcd://192.168.99.100:2379/swarm
在centos-node3执行:
1
docker run -d swarm join --addr=192.168.99.102:2375 etcd://192.168.99.100:2379/swarm
启动swarm manage
在centos-node2上执行1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 启动swarm manage
docker run -d -p 3376:3376 -t \
swarm manage \
-H 0.0.0.0:3376 \
etcd://192.168.99.100:2379/swarm
检查swarm节点列表
docker run --rm swarm list etcd://192.168.99.100:2379/swarm
查看swarm集群信息
export DOCKER_HOST=192.168.99.101:3376
docker info
测试
docker run --rm -p 8080:80 nginx:alpine
docker ps -a # 查看nginx安装到哪台机器上了
curl -L http://nginx_host:8080
记录
- 如果docker info 出现
Error: ID duplicated.
删掉/etc/docker/key.json
文件(我的虚拟机是直接复制出来的)
参考资料
https://docs.docker.com/v1.5/swarm/discovery/#using-etcd
https://docs.docker.com/engine/userguide/networking/get-started-overlay/
https://github.com/docker/swarm