docker环境下安装zookeeper3.5版本
说明
之前只是在虚拟机中安装过zookeeper
,很是不方便。今天决定在docker
中安装zookeeper
,网上的教程很多,但是基本都是相互抄袭,在安装过程上遇见很多坑,在此记录,给大家作为一个参考,针对的是docker zookeeper3.5
官方镜像,集群搭建。只讲述安装过程,zk
详细参数自行百度。
zookeeper安装
1.docker
下载最新的zookeeper
镜像
docker pull zookeeper
直接拉取官方最新版本
- 新建
docker-compose.yml
(任意目录均可),配置启动容器参数
直接附上docker-compose.yml
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;2181 server.2=zoo2:2888:3888;2181 server.3=zoo3:2888:3888;2181
zoo2:
image: zookeeper
restart: always
container_name: zoo2
ports:
- "2182:2181"
environment:
ZOO_MY_ID: 2
ZOO_SERVERS: server.1=zoo1:2888:3888;2181 server.2=zoo2:2888:3888;2181 server.3=zoo3:2888:3888;2181
zoo3:
image: zookeeper
restart: always
container_name: zoo3
ports:
- "2183:2181"
environment:
ZOO_MY_ID: 3
ZOO_SERVERS: server.1=zoo1:2888:3888;2181 server.2=zoo2:2888:3888;2181 server.3=zoo3:2888:3888;2181
此处配置文件中,注意
ZOO_SERVERS: server
中的配置,zoo1:2888:3888;2181
中的2181
一定要写(指定clientPort
),否则会报client port not found
的错误
- 进入
docker-compose.yml
所在目录运行命令docker-compose up -d
(-d可以指定在后台运行,否则会直接在当前shell中运行),如果没有异常会在shell中输出
- shell中执行命令
docker ps
查看当前容器是否正常工作
- 进入容器中查看
zookeeper
主从关系
. 运行命令docker exec -it zoo1 /bin/bash
进入容器
. 在zk
目录下运行命令./bin/zkServer.sh status
查看zk主从状态
- 客户端连接zk
docker
所在宿主机下载zk
,并进入zk
目录下面的bin
目录,执行连接命令windows
客户端执行.\zkCli.cmd -server localhost:2181,localhost:2182,localhost:2183
linux
客户端执行.\zkCli.sh -server localhost:2181,localhost:2182,localhost:2183
显示如下即服务正常
tip
docker安装zk之后检测zk是否正常运行
dcoker ps
查看容器是否均已启动(未启动,查看docker运行日志,进行分析)- 用
zkCli
连接集群,查看zk
是否能正常连接 - 如果不能正常连接,则进入容器中查看
zk
状态以及zk
的运行日志