如果饿了就吃,困了就睡,渴了就喝,人生就太无趣了
1 环境准备
1.1 虚拟机准备
序号 | host | ip | 操作系统 |
---|---|---|---|
主节点 | master | 192.168.14.15 | centOS7 |
从节点 | slave0 | 192.168.14.16 | centOS7 |
从节点 | slave1 | 192.168.14.17 | centOS7 |
1.2 docker和docker-compose准备
docker和docker-compose安装请参考之前写的博客
https://blog.csdn.net/weixin_41938180/article/details/104096695
2 软件包安装
软件包安装自己本人尝试好多次都没成功,本人博客就不介绍了,推荐一个文档:https://www.cnblogs.com/qingyunzong/p/8619184.html
3 docker安装
3.1 拉取镜像
根据自己的需要找到相应版本的镜像,使用docker命令拉取镜像,每个节点都需要拉取镜像
docker pull zookeeper:3.4.13
3.2 创建挂载目录
创建zookeeper的挂载目录,主要是将配置文件和数据进行挂载。每台节点都需要这样配置
mkdir -p /opt/zookeeper/conf
mkdir -p /opt/zookeeper/data
3.3 准备配置文件
在刚刚创建的/opt/zookeeper/conf
目录下创建zoo.cfg
文件。三个节点配置都是相同的。
tickTime=10000
initLimit=10
syncLimit=5
dataDir=/data
dataLogDir=/data/log
clientPort=2181
server.1=master:2888:3888
server.2=slave0:2888:3888
server.3=slave1:2888:3888
这里配置集群各节点的地址用的是host,没有用ip,根据实际情况自行更改
3.4 创建myid文件
在/opt/zookeeper/data
目录下创建 myid
文件。
touch myid
根据配置文件中最后三行的配置,可以看到,
master
节点对应的是server.1
,所以,myid
中写入1
;
slave0
节点对应的是server.2
,所以,myid
中写入2
;
slave1
节点对应的是server.3
,所以,myid
中写入3
;
3.5 修改文件夹的用户和用户组
chown -R /opt/zookeeper/conf
chown -R /opt/zookeeper/data
3.6 启动
每个节点运行docker命令
docker run --network host -v /opt/zookeeper-docker/data:/data -v /opt/zookeeper-docker/conf:/conf --name zookeeper -d zookeeper:3.4.13
3.7 检查容器状态
docker ps
可见容器已经启动。
3.8 检查集群状态
进入刚刚启动的容器中,查看zookeeper的状态
docker exec -it 37aa02afd7fc /bin/sh
zkServer.sh status
master节点的状态
slave0节点的状态
slave1节点的状态
三个节点的状态正常。
3.9 创建docker-compose文件
由于每次启动容器的命令过长怕自己记不住,所以使用docker-compose管理容器。在/opt/zookeeper-docker/
目录下创建docker-compose.yml
,文件内容如下:
version: '2'
services:
zookeeper:
image: zookeeper:3.4.13
volumes:
- /opt/zookeeper-docker/data:/data
- /opt/zookeeper-docker/conf:/conf
network_mode: "host"
创建好后。启动容器:
docker-compose up -d
停止容器
docker-compose down