- docker-compose.yml
version: '3.1'
services:
zoo1:
image: zookeeper:3.4.14
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:3.4.14
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:3.4.14
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
2. 启动
docker-compose up -d
3. 查看状态
docker exec -t zoo1 zkServer.sh status
4. 问题处理
CentOS下 docker 安装的zookeeper,配置了三个zookeeper主机,docker up 后进zookeeper里面去看,status后发现集群跑不起来,报错:
ZooKeeper JMX enabled by default
Using config: /conf/zoo.cfg
Client port not found in static config file. Looking in dynamic config file.
grep: : No such file or directory
Client port not found. Terminating.
原因是版本的问题,用docker搭建zookeeper集群的时候不要用最新的发行版,修改zookeeper版本是 3.4.14即可。