docker -compose 安装zookeeper,建立zookeeper集群

本文详细介绍了如何在三台虚拟机上使用Docker安装并配置Zookeeper集群,包括启动Docker服务、下载镜像、创建挂载目录、设置server.id、编写zoo.cfg配置文件、启动容器、配置开机启动以及防火墙设置等步骤,确保Zookeeper集群的正常运行。

一、准备

3台虚拟机安装linux,centos7.

网络连接使用NAT模式

up-3e0d5ebad2c1c13c4ed9f25d6e114177544.png

二、docker安装zookeeper

1.启动docker 服务

service docker start

2.查找镜像

docker search zookeeper

3.下载镜像

docker pull zookeeper

4. 主机上建立挂载目录

mkdir -p /opt/zookeeper/data
mkdir -p /opt/zookeeper/conf

5. 分别设置每台机器的server id

cd /opt/zookeeper/data
touch myid
echo 0 > myid

id分别要对应配置文件中的id,即server.0,server.1,server.2

6.编写 zookeeper 配置文件zoo.cfg,配置文件放在/opt/zookeeper/conf 目录下

cd /opt/zookeeper/conf
vim zoo.cfg
clientPort=2181
dataDir=/data
dataLogDir=/data/log
tickTime=2000
initLimit=5
syncLimit=2
autopurge.snapRetainCount=3
autopurge.purgeInterval=0
maxClientCnxns=60
server.0=192.168.137.129:2888:3888
server.1=192.168.137.130:2888:3888
server.2=192.168.137.131:2888:3888

注意:若安装单机版zookeeper,则配置文件如下:

clientPort=2181
dataDir=/data
dataLogDir=/data/log
tickTime=2000
initLimit=5
syncLimit=2
autopurge.snapRetainCount=3
autopurge.purgeInterval=0
maxClientCnxns=60

7.在三台机器上分别启动容器 (使用docker-compose编排zookeeper步骤为8-14步)

docker run  --network host  -v /opt/zookeeper/data:/data -v /opt/zookeeper/conf:/conf --name zookeeper_rh  -d docker.io/zookeeper

注意:

命令说明:

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

8.编排zookeeper.yml

cd /opt/zookeeper/dockerfile
vim zookeeper.yml 
zookeeper_rh:
        image: zookeeper
        container_name: zookeeper_rh
        restart: always
        volumes:
                - /opt/zookeeper/data:/data  
                - /opt/zookeeper/conf:/conf      
        ports:
                - "2181:2181"

9.构建zookeeper容器

docker-compose -f  /opt/zookeeper/dockerfile/zookeeper.yml up

10.启动容器

docker-compose -f  /opt/zookeeper/dockerfile/zookeeper.yml  start

11.编辑开机启动脚本

cd /opt/zookeeper/dockerfile
vim boot_zookeeper
#!/bin/bash
#chkconfig:2345 30 80
case $1 in
start)
docker-compose -f /opt/zookeeper/zookeeper.yml start
;;
stop)
docker-compose -f /opt/zookeeper/zookeeper.yml stop
;;
restart)
docker-compose -f /opt/zookeeper/zookeeper.yml restart
;;
*)
echo "require start|stop|restart" ;;
esac

12.上传 boot_zookeeper到/etc/init.d/

cp boot_zookeeper /etc/init.d

13. 添加执行权限

chmod +x /etc/init.d/boot_zookeeper

14.加入开机启动

chkconfig --add boot_zookeeper


15.开启2181端口

vim /etc/sysconfig/iptables
# 加入如下代码
-A INPUT -m state --state NEW -m tcp -p tcp --dport 2181 -j ACCEPT

16.保存退出后重启防火墙

service iptables restart

17.查看容器状态

选择一台服务器,进入容器,在zookeeper的bin目录下执行 ./zkServer.sh status,可看到该节点是leader还是follower

docker ps
docker exec -it 546 bash
[root@localhost ~]# docker ps
CONTAINER ID   IMAGE       COMMAND                  CREATED          STATUS          PORTS     NAMES
546a2cf471ad   zookeeper   "/docker-entrypoint.…"   27 minutes ago   Up 27 minutes             zookeeper_1
[root@localhost ~]# docker exec -it 546 bash
root@localhost:/apache-zookeeper-3.7.0-bin# docker exec -it 546 bashdocker exec -it 546 bash
bash: docker: command not found
root@localhost:/apache-zookeeper-3.7.0-bin# ls
LICENSE.txt  NOTICE.txt  README.md  README_packaging.md  bin  conf  docs  lib
root@localhost:/apache-zookeeper-3.7.0-bin# cd bin
root@localhost:/apache-zookeeper-3.7.0-bin/bin# ls
README.txt    zkCli.cmd  zkEnv.cmd  zkServer-initialize.sh  zkServer.sh            zkSnapShotToolkit.sh    zkSnapshotComparer.sh  zkTxnLogToolkit.sh
zkCleanup.sh  zkCli.sh   zkEnv.sh   zkServer.cmd            zkSnapShotToolkit.cmd  zkSnapshotComparer.cmd  zkTxnLogToolkit.cmd
root@localhost:/apache-zookeeper-3.7.0-bin/bin# ./zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /conf/zoo.cfg
Client port found: 2181. Client address: localhost. Client SSL: false.
Mode: follower
root@localhost:/apache-zookeeper-3.7.0-bin/bin# 

up-f5302ba4fb13e2f635bbd196a61a9e4d5e1.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ITSDSDFSDF

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值