问题背景
前言
- 本文参考自:docker-compose快速搭建Zookeeper集群,熬到凌晨三点多验证部署成功,网上有很多文章已经无法正确部署了,因为有些东西版本升级了,版本跟不上就会报错
- 还有一种更加详细更加全面的部署方式:Docker之docker-compose一键部署Zookeeper集群,但笔者还未验证,先记录下来
搭建
安装docker-ce
此处不赘述
安装docker-compose
不可以下载比以下版本号
1.28.5
更低的版本号,否则报错
# 下载
curl -L https://github.com/docker/compose/releases/download/1.28.5/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
# 创建全局命令并赋予权限
chmod +x /usr/local/bin/docker-compose
拉取镜像
版本号可以根据Curator框架的maven依赖版本号修改,笔者这里选3.5.7,做项目中引入的zookeeper依赖也尽量跟此处版本号一样
docker pull zookeeper:3.5.7
创建目录
mkdir zk-cluster
cd zk-clustervim docker-compose.yml
编辑docker-compose.yml
docker-compose的版本号不可以比以下版本号
1.28.5
更低的版本号,否则报错
version: '3.1'networks:zk-net:name: zk-net # 网络名services:zoo1:image: zookeeper:3.5.7container_name: zoo1 # 容器名称restart: always # 开机自启hostname: zoo1 # 主机名ports:- 2181:2181 # 端口号environment:ZOO_MY_ID: 1ZOO_SERVERS: server.1=zoo1:2888:3888;2181 server.2=zoo2:2888:3888;2181 server.3=zoo3:2888:3888;2181networks:- zk-netzoo2:image: zookeeper:3.5.7container_name: zoo2restart: alwayshostname: zoo2ports:- 2182:2181environment:ZOO_MY_ID: 2ZOO_SERVERS: server.1=zoo1:2888:3888;2181 server.2=zoo2:2888:3888;2181 server.3=zoo3:2888:3888;2181networks:- zk-netzoo3:image: zookeeper:3.5.7container_name: zoo3restart: alwayshostname: zoo3ports:- 2183:2181environment:ZOO_MY_ID: 3ZOO_SERVERS: server.1=zoo1:2888:3888;2181 server.2=zoo2:2888:3888;2181 server.3=zoo3:2888:3888;2181networks:- zk-net
启动容器服务
docker-compose -f docker-compose.yml up -d
检查是否启动成功
docker exec -it zoo1 zkServer.sh statusdocker exec -it zoo2 zkServer.sh statusdocker exec -it zoo3 zkServer.sh status