Zookeeper
- 下载镜像
docker pull zookeeper:3.7.0
- 创建挂载目录
mkdir -p /docker/zookeeper/node1/data
mkdir -p /docker/zookeeper/node1/logs
mkdir -p /docker/zookeeper/node1/conf
- 配置文件 vi node1/conf/zoo.cfg
#心跳时间2秒
tickTime=2000
#Follower跟随者服务器与Leader领导者服务器之间初始化连接时能容忍的最多心跳数10*tickTime
initLimit=10
#集群中Leader与Follower之间的最大响应时间单位5*tickTime
syncLimit=5
#存储内存中数据库快照的位置,除非另有说明,否则指向数据库更新的事务日志
dataDir=/data
dataLogDir=/logs
#zookeeper端口
clientPort=2181
#server.1代表一台服务器的编号,第一个端口代表Leader选举的端口,第二个端口为Zookeeper服务器之间的通信接口
server.1=zookeeper_1:2881:3881
server.2=zookeeper_2:2882:3882
server.3=zookeeper_3:2883:3883
- 创建
myid
文件 写入节点的id 写入1
cat >> node1/data/myid << eof
1
- docker-compose.yml
version: '3.7'
# 给zk集群配置一个网络,网络名为zk-net
networks:
zkcluster:
name: zkcluster
# 配置zk集群的
# container services下的每一个子配置都对应一个zk节点的docker container
services:
zookeeper_1:
# docker container所使用的docker image
image: zookeeper:3.7.0
hostname: zookeeper_1
container_name: zookeeper_1
# 配置docker container和宿主机的端口映射
ports:
- 2181:2181
- 2881:2888
- 3881:3888
# 配置docker container的环境变量
volumes:
- ./node1/data:/data
- ./node1/logs:/datalog
- ./node1/conf/zoo.cfg:/conf/zoo.cfg
# 当前docker container加入名为zk-net的隔离网络
networks:
- zkcluster
zookeeper_2:
# docker container所使用的docker image
image: zookeeper:3.7.0
hostname: zookeeper_2
container_name: zookeeper_2
# 配置docker container和宿主机的端口映射
ports:
- 2182:2181
- 2882:2888
- 3882:3888
# 配置docker container的环境变量
volumes:
- ./node1/data:/data
- ./node1/logs:/datalog
- ./node1/conf/zoo.cfg:/conf/zoo.cfg
# 当前docker container加入名为zk-net的隔离网络
networks:
- zkcluster
zookeeper_3:
# docker container所使用的docker image
image: zookeeper:3.7.0
hostname: zookeeper_3
container_name: zookeeper_3
# 配置docker container和宿主机的端口映射
ports:
- 2183:2181
- 2883:2888
- 3883:3888
# 配置docker container的环境变量
volumes:
- ./node1/data:/data
- ./node1/logs:/datalog
- ./node1/conf/zoo.cfg:/conf/zoo.cfg
# 当前docker container加入名为zk-net的隔离网络
networks:
- zkcluster