单节点安装
一、 环境说明
- docker: 18.09.9-ce
- zookeeper: 3.5.6
二、 拉取 zookeeper 镜像
- 拉取镜像
1 | docker pull zookeeper |
默认是摘取最新版本 zookeeper:latest。
- 查看当前镜像

三、 准备工作
将它部署在 /usr/local/zookeeper 目录下:
1 | cd /usr/local && mkdir zookeeper && cd zookeeper |
创建data目录,用于挂载容器中的数据目录:
1 | mkdir data |

四、 正式部署
- 部署命令:
1 | docker run -d -e TZ="Asia/Shanghai" -p 2181:2181 -v $PWD/data:/data --name zookeeper --restart always zookeeper |
- 命令详细说明:
1 | -e TZ="Asia/Shanghai" # 指定上海时区 |
- 查看容器启动情况:
1 | docker ps -a |

注:状态(STATUS)为Up,说明容器已经启动成功。
五、 测试
- 使用zk命令行客户端连接zk
1 | docker run -it --rm --link zookeeper:zookeeper zookeeper zkCli.sh -server zookeeper |
说明:-server zookeeper是启动zkCli.sh的参数


六、 其它命令
1 | # 查看zookeeper容器实例进程信息 |
集群方式安装
集群方式选择使用docker-compose来完成。
一、安装docker-compose
1 | curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose |
二、配置docker-compose
编写配置文件,并将其命名为:docker-compose.yml(docker-compose默认配置文件名)
配置文件内容:
1 | version: '2' |
此配置文件表示,Docker需要启动三个zookeeper实例,并将2181,2182,2183三个端口号映射到容器内的2181这个端口上。ZOO_MY_ID:表示zk服务的ID, 取值为1-255之间的整数,且必须唯一ZOO_SERVERS:表示zk集群的主机列表
三、启动zookeeper集群
1 | docker-compose up -d |
该命令执行需要在docker-compose配置文件的目录下执行,结果如下:
1 | [root@izbp13xko46hud9vfr5s94z conf]# docker-compose up -d |
四、查看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查看
1 | [root@izbp13xko46hud9vfr5s94z conf]# docker-compose ps |
注:这个命令需要在docker-compose配置文件下执行。
五、管理docker-compose服务
1 | # 停止docker-compose服务 |
六、查看zookeeper集群节点主从关系
使用docker exec -it zoo1 /bin/bash这个命令进入zoo1节点中,之后输入./bin/zkServer.sh statu来查看节点主从关系
1 | [root@izbp13xko46hud9vfr5s94z conf]# docker exec -it zoo1 /bin/bash |