创建docker swarm集群的两种方式

上一篇介绍了dockers swarm的架构和特点,这次来学习下创建docker集群的两种方式。
假设有三台可用的服务器,且都安装了docker 和 swarm:
m1 172.16.71.43 (同时担任管理节点和普通节点)
m2 172.16.71.52
m3 172.16.72.5

方法一:静态文件配置集群信息

首先在m1上创建一个文件,描述组成集群的node。

$ echo 172.16.71.43:2375 >> /tmp/my_cluster
$ echo 172.16.71.52:2375 >> /tmp/my_cluster
$ echo 172.16.72.5:2375 >> /tmp/my_cluster

执行命令

$ docker run -d -p 2376:2375  -v /tmp/my_cluster:/tmp/my_cluster swarm manage file:///tmp/my_cluster

用ps命令查看容器id

$ docker ps

把容器的log调出来看一下有没有报错

$ docker logs <contains id>

(1)
上图表示一切正常,用下面的命令查看下集群列表

$ docker run --rm -v /tmp/my_cluster:/tmp/my_cluster swarm list file:///tmp/my_cluster

(2)
查看集群的详细信息

$ docker -H tcp://172.16.71.43:2376 info

这里写图片描述
然后我们可以用下面的命令操作集群了

$ docker -H tcp://<swarm_ip:swarm_port> info
$ docker -H tcp://<swarm_ip:swarm_port> run ...
$ docker -H tcp://<swarm_ip:swarm_port> ps
$ docker -H tcp://<swarm_ip:swarm_port> logs ...
...

方法2 用docker hub的发现功能

(官方不建议用于生产环境)
首先确保创建集群的机器都安装了docker官方的swarm插件,且docker的tcp端口2375可用。

$ docker daemon -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock 

创建一个唯一的token

docker run --rm swarm create

在每个节点上运行

$ docker run -d swarm join --addr=<node_ip:2375> token://<cluster_id>

在管理节点上运行

docker run -d -p <manager_port>:2375 swarm manage token://<cluster_id>

O了,如果一切正常集群就创建成功了。
用下面命令查看集群的使用情况

$ docker -H tcp://<swarm_ip:swarm_port> info
$ docker -H tcp://<swarm_ip:swarm_port> run ...
$ docker -H tcp://<swarm_ip:swarm_port> ps
$ docker -H tcp://<swarm_ip:swarm_port> logs ...

enjoy!

官方文档还有两种方式创建swarm。
用KV分布式系统创建集群,支持etcd,consul,zookeeper。
用静态IP列表创建集群(和静态文件类似)。
官方还支持基于范围的IP配置,如10.0.0.[10:200]表示10.0.0.10到10.0.0.200

$ echo "10.0.0.[11:100]:2375"   >> /tmp/my_cluster

参考:https://docs.docker.com/swarm/discovery/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值