Linux 环境下,使用docker搭建 ZooKeeper 集群

本文详细介绍了如何使用Docker部署Zookeeper集群,包括环境准备、配置文件设置、防火墙端口开放以及启动命令。通过挂载本地目录到容器中,确保数据持久化,并设置不同服务器上的ZOO_MY_ID以区分集群节点。最后,文章提到了启动后的验证步骤及可能遇到的问题和解决方法。
摘要由CSDN通过智能技术生成

一、环境准备

docker pull zookeeper
文件夹创建
分别创建4个文件夹 第一个存放启动命令留着以后用. 剩下那3个看名字就知道是啥意思了
然后在conf文件夹里面放一个文件: zoo.cfg
内容是:

tickTime=2000
initLimit=100
syncLimit=5
dataDir=/data
dataLogDir=/datalog
clientPort=2181
quorumListenOnAllIPs=true
preAllocSize=64M
globalOutstandingLimit=100000
snapCount=50000
maxClientCnxns=64
minSessionTimeout=4000
maxSessionTimeout=40000
4lw.commands.whitelist=*
admin.enableServer=true
server.1=172.26.226.13:2888:3888
server.2=172.26.226.17:2888:3888
server.3=172.26.130.14:2888:3888
tcpKeepAlive=true
ipReachableTimeout=0
cnxTimeout=3
electionAlg=3
autopurge.snapRetainCount=5
autopurge.purgeInterval=24
#忽略ACL验证
skipACL=yes
forceSync=yes

然后打开防火墙 2181 2888 3888
firewall-cmd --zone=public --add-port=2888/tcp --permanent
firewall-cmd --zone=public --add-port=3888/tcp --permanent
firewall-cmd --zone=public --add-port=2181/tcp --permanent
重启防火墙让它生效
systemctl restart firewalld.service
查看已经开放的端口
firewall-cmd --list-ports
端口列表
然后就开始执行命令 这个命令保存到cmd文件夹里下次接着用

docker run -itd -p 2181:2181 -p 2888:2888 -p 3888:3888 --restart always --name=zookeeper --hostname zookeeper-server --privileged=true \
-v /public/soft/zookeeper/conf/zoo.cfg:/conf/zoo.cfg \
-v /public/soft/zookeeper/data:/data \
-v /public/soft/zookeeper/datalog:/datalog \
-v /public/soft/zookeeper/logs:/logs \
-e "TZ=Asia/Shanghai" \
-e "ZOO_MY_ID=3" \
-e "JAVA_OPTS=-server -Xms512m -Xmx512m -Xmn256m -Duser.home=/opt -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m -XX:+AlwaysPreTouch -XX:-UseBiasedLocking" \
zookeeper:latest

如果有3台服务器那就 一个1 一个2 一个3 不同的服务器不要写一样的 其他的都一样.
“ZOO_MY_ID=1”
“ZOO_MY_ID=2”
“ZOO_MY_ID=3”
-v的挂在本地要创建文件夹啊 不创建可能就报错了;

验证
docker exec -ti [你的zookeeper container id] zkServer.sh status

docker exec -it  zookeeper  zkServer.sh status

意外不报错
如果报上面的这个错 那就重启docker
systemctl restart docker 就可以解决了. 但是是啥原因暂时还不知道. 有知道的可以告诉我下 … 欢迎指导!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值