您的位置:首页 > 运维架构 > Docker

自己学Docker:15.Docker使用实战--zookeeper集群部署

2017-11-24 16:43 766 查看
之前有介绍过使用Docker创建MySQL服务,说明了三种方式。

使用Docker镜像

通过Dockerfile构建

通过docker stack deploy(或者docker-compose)

1,2可以归为一种,即单个应用方式: Dockerfile -> 镜像 -> 容器(docker run) 。对于搭建集群环境的话,Docker Stack方式实施和管理更为方便。所以这里搭建一个zookeeper的集群环境就不再使用1,2种,想,具体方式可以参见Docker创建MySQL服务

zookeeper.yml

通过docker stack deploy方式首先要编写yaml文件。样例可以参见dockerhub的zookeeper镜像的介绍

如下:

version: '3.1'

services:
zoo1:
image: zookeeper
restart: always
hostname: zoo1
ports:
- 2181:2181
environment:
ZOO_MY_ID: 1
ZOO_SERVERS: server.1=zoo1:2888:3888 server.2=zoo2:2888:3888 server.3=zoo3:2888:3888

zoo2:
image: zookeeper
restart: always
hostname: zoo2
ports:
- 2182:2181
environment:
ZOO_MY_ID: 2
ZOO_SERVERS: server.1=zoo1:2888:3888 server.2=zoo2:2888:3888 server.3=zoo3:2888:3888

zoo3:
image: zookeeper
restart: always
hostname: zoo3
ports:
- 2183:2181
environment:
ZOO_MY_ID: 3
ZOO_SERVERS: server.1=zoo1:2888:3888 server.2=zoo2:2888:3888 server.3=zoo3:2888:3888


上面的文件创建了三个zookeeper的集群服务,以复制模式(replicated mode)启动Zookeeper,并将容器内的2181端口分别映射到主机的2181,2182,2183。

当然,严格的说,这个也不能说是集群模式。毕竟所有容器都运行再同一主机,如果宕机,所有的zookeeper服务器都将处于脱机状态。

执行,生成服务

采用如下命令:

sudo docker stack deploy -c zookeeper.yml zk




查看服务状态:

sudo docker stack services zk




连接zookeeper服务

zkCli.sh

zookeeper的bin目录下提供了一个客户端连接工具zkCli.sh。

https://www.apache.org/dyn/closer.cgi/zookeeper/下载zookeeper即可获得。

进入到bin目录下,执行命令。

./zkCli.sh -server 127.0.0.1:2181




可以成功连接到上面创建的zookeeper服务。

命令行的相关操作,可以参见

分布式服务框架ZooKeeper安装和配置

分布式服务框架ZooKeeper:四字命令
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: