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下的配置
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。