前言
假设有三台主机的,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下的配置
网友评论