Docker搭建zookeeper集群

前言

假设有三台主机的,ip分别为:
主机一:192.168.1.76
主机二:192.168.1.35
主机三:192.168.1.82
三台主机的安装步骤相似,以主机一为例:

拉取官方zookeeper镜像:

docker pull zookeeper:3.5

建立挂载目录

mkdir -p /usr/local/docker/zookeeper/conf
mkdir -p /usr/local/docker/zookeeper/data
cd /usr/local/docker/zookeeper/conf
touch zoo.cfg
vi zoo.cfg

三台主机的配置文件zoo.cfg的内容如下:

clientPort=2181
dataDir=/data
dataLogDir=/datalog
tickTime=2000
initLimit=5
syncLimit=2
autopurge.snapRetainCount=3
autopurge.purgeInterval=0
maxClientCnxns=60
standaloneEnabled=true
server.1=192.168.1.76:2888:3888
server.2=192.168.1.35:2888:3888
server.3=192.168.1.82:2888:3888

在主机一上为自己分配server id,命令如下:

cd /usr/local/docker/zookeeper/data
touch myid
echo 1 > myid

在主机二上为自己分配server id,命令如下:

cd /usr/local/docker/zookeeper/data
touch myid
echo 2 > myid

在主机三上为自己分配server id,命令如下:

cd /usr/local/docker/zookeeper/data
touch myid
echo 3 > myid

启动容器

docker run --privileged=true --network=host -v /usr/local/docker/zookeeper/data:/data -v /usr/local/docker/zookeeper/conf:/conf --name=zookeeper -d zookeeper:3.5

命令参数说明

  • --network=host: 使用主机上的网络配置,如果不用这种模式,而用默认的bridge模式,会导致容器跨主机间通信失败
  • -v /usr/local/docker/zookeeper/data:/data:主机的数据目录挂载到容器/data下
  • -v /usr/local/docker/zookeeper/conf:/conf: 主机的配置目录挂载到容器的/conf下,容器内的zkServer.sh默认会读取/conf/zoo.cfg下的配置

你可能感兴趣的:(Docker搭建zookeeper集群)