Docker容器

Centos7 docker+zookeeper集群构建

本文主要是介绍Centos7 docker+zookeeper集群构建,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

一.前言
请准备多台Centos7系统,及其zookeeper离线包。我这边主要用三台进行讲解。

二. Zookeeper 安装
1.拉取zookeeper镜像

docker pull registry.docker-cn.com/library/zookeeper:3.6.1

2.用于挂载zookeeper数据文件

mkdir -p /home/zookeeper/data

3.用于挂载zookeeper配置文件

mkdir -p /home/zookeeper/conf

4.vi /home/zookeeper/conf/zoo.cfg

#zoo.cfg的内容
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/data
dataLogDir=/logs
clientPort=2181
server.0=192.168.153.133:2888:3888 
server.1=192.168.153.137:2888:3888 
server.2=192.168.153.138:2888:3888

5.每台机器zookeeper/data 创建myid文件,一一对应server0,1,2 序号

6.用于挂载zookeeper日志文件

mkdir -p /home/zookeeper/logs

7.启动命令

docker run --privileged=true --network host --name zookeeper -p 2181:2181 -v /home/zookeeper/data:/data -v /home/zookeeper/conf/zoo.cfg:/conf/zoo.cfg -v /home/zookeeper/logs:/logs -d zookeeper

命令说明

(1)--network host: 使用主机上的网络配置,如果不用这种模式,而用默认的bridge模式,会导致容器跨主机间通信失败
(2)-v /usr/local/zookeeper/data:/data:主机的数据目录挂载到容器/data下
(3)-v /usr/local/zookeeper/conf:/conf: 主机的配置目录挂载到容器的/conf下,容器内的zkServer.sh默认会读取/conf/zoo.cfg下的配置

二. 注意事项

  1. Invalid config, exiting abnormally错误,请检查zoo.cfg集群是否存在bug
  2. zookepeer集群启动报错,unable to run quorum server。
    在配置文件/home/zookeeper/conf/zoo.cfg ,找到下面两个配置的值
dataDir=/data
dataLogDir=/data/logs

删除下面两个目录的version-2:

删除下面两个目录的version-2:

然后重新启动即可

  1. 集群个数一般为奇数。
  2. 集群启动成功需满足(过半原则): 已启动个数(未成功)> 总集群个数(N)/ 2 。然后做集群的一个个启动,一开始启动并未成功,监听等待其他启动,达到条件之后,集群启动成功。
这篇关于Centos7 docker+zookeeper集群构建的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!