当前位置: 首页 > article >正文

ZOOKEEPER [Zookeeper——Docker下安装部署]

单节点安装

一、 环境说明

  • docker: 18.09.9-ce

  • zookeeper: 3.5.6

二、 拉取 zookeeper 镜像

  • 拉取镜像

docker pull zookeeper

默认是摘取最新版本 zookeeper:latest

  • 查看当前镜像

img

三、 准备工作

将它部署在 /usr/local/zookeeper 目录下:

cd /usr/local && mkdir zookeeper && cd zookeeper

创建data目录,用于挂载容器中的数据目录:

mkdir data

img

四、 正式部署

  • 部署命令:

docker run -d -e TZ="Asia/Shanghai" -p 2181:2181 -v $PWD/data:/data --name zookeeper --restart always zookeeper
  • 命令详细说明:

复制代码

-e TZ="Asia/Shanghai" # 指定上海时区 
-d # 表示在一直在后台运行容器
-p 2181:2181 # 对端口进行映射,将本地2181端口映射到容器内部的2181端口
--name # 设置创建的容器名称
-v # 将本地目录(文件)挂载到容器指定目录;--restart always #始终重新启动zookeeper

复制代码

  • 查看容器启动情况:

docker ps -a

img

注:状态(STATUS)为Up,说明容器已经启动成功。

五、 测试

  • 使用zk命令行客户端连接zk

docker run -it --rm --link zookeeper:zookeeper zookeeper zkCli.sh -server zookeeper

说明:-server zookeeper是启动zkCli.sh的参数

img

img

六、 其它命令

复制代码

# 查看zookeeper容器实例进程信息
docker top zookeeper
​
# 停止zookeeper实例进程
docker stop zookeeper
​
# 启动zookeeper实例进程
docker start zookeeper
​
# 重启zookeeper实例进程
docker restart zookeeper
​
# 查看zookeeper进程日志
docker logs -f zookeeper
​
# 杀死zookeeper实例进程
docker kill -s KILL zookeeper
​
# 移除zookeeper实例
docker rm -f -v zookeeper

复制代码

集群方式安装

集群方式选择使用docker-compose来完成。

一、安装docker-compose

curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

二、配置docker-compose

编写配置文件,并将其命名为:docker-compose.ymldocker-compose默认配置文件名) 配置文件内容:

复制代码

version: '2'
services:
    zoo1:
        image: zookeeper
        restart: always
        container_name: 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
        container_name: 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
        container_name: 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

复制代码

此配置文件表示,Docker需要启动三个zookeeper实例,并将2181,2182,2183三个端口号映射到容器内的2181这个端口上。 ZOO_MY_ID:表示zk服务的ID, 取值为1-255之间的整数,且必须唯一 ZOO_SERVERS:表示zk集群的主机列表

三、启动zookeeper集群

docker-compose up -d

该命令执行需要在docker-compose配置文件的目录下执行,结果如下:

[root@izbp13xko46hud9vfr5s94z conf]# docker-compose up -d 
Starting zoo1 ... done
Starting zoo2 ... done
Starting zoo3 ... done
[root@izbp13xko46hud9vfr5s94z conf]# 

四、查看zookeeper集群实例

  • 通过docker ps查看

复制代码

[root@izbp13xko46hud9vfr5s94z ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES e53b4c838001 zookeeper "/docker-entrypoint.…" 4 minutes ago Up 44 seconds 2888/tcp, 0.0.0.0:2181->2181/tcp, 3888/tcp zoo1 19282fb6f9b4 zookeeper "/docker-entrypoint.…" 4 minutes ago Up 44 seconds 2888/tcp, 3888/tcp, 0.0.0.0:2182->2181/tcp zoo2 099b926fa2d3 zookeeper "/docker-entrypoint.…" 4 minutes ago Up 44 seconds 2888/tcp, 3888/tcp, 0.0.0.0:2183->2181/tcp zoo3

复制代码

  • 通过docker-compose ps查看

复制代码

[root@izbp13xko46hud9vfr5s94z conf]# docker-compose ps 
Name              Command               State                     Ports                   
------------------------------------------------------------------------------------------
zoo1   /docker-entrypoint.sh zkSe ...   Up      0.0.0.0:2181->2181/tcp, 2888/tcp, 3888/tcp
zoo2   /docker-entrypoint.sh zkSe ...   Up      0.0.0.0:2182->2181/tcp, 2888/tcp, 3888/tcp
zoo3   /docker-entrypoint.sh zkSe ...   Up      0.0.0.0:2183->2181/tcp, 2888/tcp, 3888/tcp
[root@izbp13xko46hud9vfr5s94z conf]# 

复制代码

注:这个命令需要在docker-compose配置文件下执行。

五、管理docker-compose服务

复制代码

# 停止docker-compose服务
docker-compose stop
​
# 启动docker-compose服务
docker-compose start 
# 重启docker-compose服务
docker-compose restart 

复制代码

六、查看zookeeper集群节点主从关系

使用docker exec -it zoo1 /bin/bash这个命令进入zoo1节点中,之后输入./bin/zkServer.sh statu来查看节点主从关系

复制代码

[root@izbp13xko46hud9vfr5s94z conf]# docker exec -it zoo1 /bin/bash 
bash-4.4# ./bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /conf/zoo.cfg
Mode: follower
bash-4.4# 

http://www.kler.cn/a/418933.html

相关文章:

  • TiDB 无统计信息时执行计划如何生成
  • Vue 3 的双向绑定原理
  • Git忽略文件
  • 算法刷题Day1
  • 【论文笔记】A Token-level Contrastive Framework for Sign Language Translation
  • ceph 报错 crush rule 20 type does not match pool
  • 解决“ VMware Tools for Windows Vista and later“报错问题
  • 泷羽sec-云技术
  • 机器学习6_支持向量机_算法流程
  • 易速鲜花聊天客服机器人的开发(下)
  • 服务器数据恢复—raid6阵列硬盘被误重组为raid5阵列的数据恢复案例
  • qt QConicalGradient详解
  • 解决虚拟机中 GitHub 无法通过 HTTPS 访问的问题
  • springboot359智慧草莓基地管理系统(论文+源码)_kaic
  • 深度学习现有网络的使用和修改以VGG16为例
  • MFC中如何在工具条动态增加菜单
  • TextBlob:简单高效的自然语言处理工具
  • Excel如何限制单元格内可选择的下拉框内容?
  • 【LeetCode】每日一题 2024_12_1 N 皇后(回溯,DFS)
  • 服务器遭受DDoS攻击后如何恢复运行?
  • 【软考速通笔记】系统架构设计师⑨——软件可靠性基础知识
  • 【AI】数据,算力,算法和应用(3)
  • Flutter | 基于函数式编程的通用单选列表设计
  • unity工程转为安卓使用的aar文件
  • 黑马2024AI+JavaWeb开发入门Day05-数据库DDL、DML、DQL飞书作业
  • windows电脑上安装树莓派操作系统