CentOS 7 中使用 Docker 方式搭建 ZooKeeper 集群

ⅰ亾dé卋堺 提交于 2020-03-20 15:45:32

3 月,跳不动了?>>>

1. 首先 CentOS 7 中应该安装好 Docker, Docker 安装参考

2. 拉取 ZooKeeper 的 docker 镜像, 可以去  https://hub.docker.com/  上搜索相关的 ZooKeeper 镜像

docker pull zookeeper:3.4.14

3. 在宿主机上建立三个文件夹, 分别对应三个容器

/root/zookeeper01/conf
/root/zookeeper01/data
/root/zookeeper01/datalog

/root/zookeeper02/conf
/root/zookeeper02/data
/root/zookeeper02/datalog

/root/zookeeper03/conf
/root/zookeeper03/data
/root/zookeeper03/datalog

4. 创建并运行三个ZooKeeper容器

docker run -d --name zookeeper-1 \
-v /root/zookeeper01/conf:/conf \         #映射文件夹到宿主机对应文件夹
-v /root/zookeeper01/data:/data \         #映射文件夹到宿主机对应文件夹
-v /root/zookeeper01/datalog:/datalog \   #映射文件夹到宿主机对应文件夹
zookeeper:3.4.14

docker run -d --name zookeeper-2 \
-v /root/zookeeper02/conf:/conf \
-v /root/zookeeper02/data:/data \
-v /root/zookeeper02/datalog:/datalog \
zookeeper:3.4.14

docker run -d --name zookeeper-3 \
-v /root/zookeeper03/conf:/conf \
-v /root/zookeeper03/data:/data \
-v /root/zookeeper03/datalog:/datalog \
zookeeper:3.4.14

5. 修改对应的 zoo.cfg 文件 和 myid 文件

首先分别获取三个容器的 ip地址

# 进入容器的命令行
docker exec -it zookeeper-1 /bin/bash
# 查看容器的ip地址
cat /etc/hosts

在宿主机上分别修改zoo.cfg, 在每个zoo.cfg文件最后添加

# 这3个ip分别是三个容器的ip, 2888是ZooKeeper集群内数据通讯端口, 3888是集群内选举端口
server.1=172.17.0.2:2888:3888
server.2=172.17.0.3:2888:3888
server.3=172.17.0.4:2888:3888

分别修改三个myid文件, 内容分别是 1 , 2 , 3

6. 重启三个容器 或者 先停止再启动.

# 重启容器
docker restart zookeeper-1 zookeeper-2 zookeeper-3
# 停止容器
docker stop zookeeper-1 zookeeper-2 zookeeper-3
# 启动容器
docker start zookeeper-1 zookeeper-2 zookeeper-3

7. 验证是否成功 

# 进入一个容器的命令行
docker exec -it zookeeper-1 /bin/bash

# 到 zookeeper/bin下, 运行zookeeper客户端
./zkCli.sh

# 创建一个节点
create /test test

# 然后到其他容器中, 看是否也有刚刚创建的test节点
get /test
 

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!