Docker部署ZooKeeper

在分布式系统中,ZooKeeper是一个关键的组件,用于协调和管理多个节点之间的状态。本文将详细介绍如何使用Docker安装和部署ZooKeeper,包括非集群部署和集群部署两种情况。

非集群部署

前期准备

在开始之前,请确保你已经安装了Docker,并且拥有sudo权限。

  1. 关闭防火墙和SELinux:

    sudo systemctl stop firewalld
    sudo systemctl disable firewalld
    sudo setenforce 0
    sed -i "s|SELINUX=enforcing|SELINUX=disabled|g" /etc/selinux/config

拉取镜像和创建目录
复制代码
docker pull zookeeper:3.4

mkdir -p /data/zookeeper/{conf,data,logs}
添加配置

创建并编辑 ​​/data/zookeeper/conf/zoo.cfg​​ 文件,添加以下内容:

复制代码
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/data
clientPort=2181
maxClientCnxns=0
autopurge.purgeInterval=1
dataLogDir=/datalog
启动ZooKeeper

运行以下命令启动ZooKeeper容器:

复制代码
docker run -d --net=host --name zookeeper --restart=always \
-v /usr/share/zoneinfo/Asia/Shanghai:/etc/localtime \
-v /data/zookeeper/conf:/conf \
-v /data/zookeeper/data/:/data \
-v /data/zookeeper/logs:/datalog \
zookeeper:3.4

集群部署

前期准备

同样地,在所有节点执行以下操作:

复制代码
sudo systemctl stop firewalld
sudo systemctl disable firewalld
sudo setenforce 0
sed -i "s|SELINUX=enforcing|SELINUX=disabled|g" /etc/selinux/config
创建目录和添加配置

每个节点执行以下命令:

复制代码
mkdir -p /data/zookeeper/{conf,data,logs}

编辑 ​​/data/zookeeper/conf/zoo.cfg​​ 文件,在每个节点上修改以下内容:

复制代码
clientPort=2181
dataDir=/data
dataLogDir=/datalog
tickTime=2000
initLimit=5
syncLimit=2
server.1=10.8.16.83:2888:3888
server.2=10.8.16.84:2888:3888
server.3=10.8.17.32:2888:3888
创建标识文件

每个节点执行以下命令:

复制代码
echo "1" >/data/zookeeper/data/myid

将数字 1 替换为节点的ID,分别在每个节点上执行。

启动ZooKeeper集群

在每个节点上执行以下命令启动ZooKeeper容器:

复制代码
docker run -d --net=host --name zookeeper --restart=always \
-v /usr/share/zoneinfo/Asia/Shanghai:/etc/localtime \
-v /data/zookeeper/conf:/conf \
-v /data/zookeeper/data/:/data \
-v /data/zookeeper/logs:/datalog \
zookeeper:3.4

验证和常用命令

验证ZooKeeper集群状态

在任意节点上运行以下命令验证ZooKeeper集群状态:

复制代码
docker exec -it zookeeper /zookeeper-3.4.14/bin/zkServer.sh status
ZooKeeper常用命令

连接到ZooKeeper容器并执行以下命令进行操作:

复制代码
docker exec -it zookeeper /zookeeper-3.4.14/bin/zkCli.sh -server localhost:2181

在交互式命令行下,可以执行以下常用命令:

  • ​ls /​:查看指定路径下的节点
  • ​create /zk mydata​:创建一个节点
  • ​get /zk​:显示指定路径下节点的信息
  • ​set /zk "anotherData"​:设置节点的内容
  • ​delete /zk​:删除一个节点

除此之外,还有一些四字母命令可以用于监控和管理ZooKeeper集群:

  • ​conf​:查看ZooKeeper服务的配置信息
  • ​stat​:查看客户端与ZooKeeper连接的简要信息
  • ​srvr​:查看ZooKeeper服务的详细信息
  • ​cons​:查看客户端与ZooKeeper连接的详细信息
  • ​mntr​:查看ZooKeeper服务的当前性能状况
相关推荐
致宏Rex9 小时前
Docker 完整教程(3,4) | 网络与挂载
运维·docker·容器
不语n11 小时前
Windows+Docker+AI开发板打造智能终端助手
python·docker·树莓派·香橙派·dify·ollama·ai开发板
荣光波比12 小时前
Docker(三)—— Docker Compose 编排与 Harbor 私有仓库实战指南
运维·docker·容器·云计算
落日漫游12 小时前
DockerCE与cri-docker核心区别解析
运维·docker·kubernetes
努力搬砖的咸鱼13 小时前
Docker 三剑客:镜像、容器、仓库
docker·云原生·容器
iHero19 小时前
【Jitsi Meet】阿里云Docker安装Jitsi Meet后的调整
阿里云·docker·云计算
java_logo19 小时前
2025 最新 Docker 镜像源加速列表与使用指南(10月更新)
运维·docker·容器
数智顾问21 小时前
探索 Docker/K8s 部署 MySQL 的创新实践与优化技巧——高可用与性能调优进阶
docker
荣光波比1 天前
Docker(五)—— Docker Compose 一键搭建 LNMP 架构并部署 WordPress
运维·docker·容器·云计算
唐僧洗头爱飘柔95271 天前
【SpringCloud(2)】微服务注册中心:Eureka、Zookeeper;CAP分析;服务注册与服务发现;单机/集群部署Eureka;连接注册中心
spring cloud·微服务·zookeeper·eureka·服务发现·集群部署·服务注册