用docker部署zookeeper笔记

本文详细介绍如何使用Docker构建并运行ZooKeeper集群,包括下载JDK与ZooKeeper,编写Dockerfile,创建启动脚本,配置主机hosts文件,生成Docker镜像,启动容器,以及检查ZooKeeper状态等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1)下载

1

2

wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u141-b15/336fa29ff2bb4ef291e347e091f7f4a7/jdk-8u141-linux-x64.tar.gz

wget https://www-eu.apache.org/dist/zookeeper/stable/zookeeper-$ZOOKEEPER_VERSION.tar.gz

  

2)Dockfile编写

FROM centos

RUN yum -y install tar yum-utils hostname net-tools  
RUN mkdir /opt/java && mkdir /opt/zookeeper 
COPY jdk-8u141-linux-x64.tar.gz /opt/java

RUN tar zxf /opt/java/jdk-8u141-linux-x64.tar.gz -C /opt/java &&\ 
    JAVA_HOME=/opt/java/jdk1.8.0_141 &&\ 
    sed -i "/^PATH/i export JAVA_HOME=$JAVA_HOME" /root/.bash_profile &&\ 
    sed -i "s%^PATH.*$%&:$JAVA_HOME/bin%g" /root/.bash_profile &&\ 
    source /root/.bash_profile

ENV ZOOKEEPER_VERSION=3.4.12 
COPY zookeeper-"$ZOOKEEPER_VERSION".tar.gz /opt/zookeeper
RUN tar zxf /opt/zookeeper/zookeeper*.tar.gz -C /opt/zookeeper
COPY start.sh /opt/zookeeper/
RUN chmod +x /opt/zookeeper/start.sh
EXPOSE 2181
ENTRYPOINT ["sh", "/opt/zookeeper/start.sh", "3.4.12"]

3)zookeeper启动脚本start.sh

#!/user/bin/sh

ZOOKEEPER_VERSION=$1
source /root/.bash_profile
cp /opt/zookeeper/zookeeper-"$ZOOKEEPER_VERSION"/conf/zoo_sample.cfg /opt/zookeeper/zookeeper-"$ZOOKEEPER_VERSION"/conf/zoo.cfg
echo server.1=zk1:2888:3888 >> /opt/zookeeper/zookeeper-"$ZOOKEEPER_VERSION"/conf/zoo.cfg
echo server.2=zk2:2888:3888 >> /opt/zookeeper/zookeeper-"$ZOOKEEPER_VERSION"/conf/zoo.cfg
echo server.3=zk3:2888:3888 >> /opt/zookeeper/zookeeper-"$ZOOKEEPER_VERSION"/conf/zoo.cfg
mkdir -p /tmp/zookeeper
echo $2 > /tmp/zookeeper/myid
/opt/zookeeper/zookeeper-"$ZOOKEEPER_VERSION"/bin/zkServer.sh start-foreground

4)主机配置hosts 修改/etc/hosts末尾添加, 启动的容器使用主机的hosts

1

2

3

172.17.0.2  zk1

172.17.0.3  zk2

172.17.0.4  zk3

5)  

生成 image:
  docker build -t myzookeeper 
启动三个容器:
  docker run -it --name zk1 --hostname zk1 $(cat /etc/hosts|awk -F ' ' '{if(NR>2){print "--add-host "$2":"$1}}') -d myzookeeper 1
  docker run -it --name zk2 --hostname zk2 $(cat /etc/hosts|awk -F ' ' '{if(NR>2){print "--add-host "$2":"$1}}') -d myzookeeper 2
  docker run -it --name zk3 --hostname zk3 $(cat /etc/hosts|awk -F ' ' '{if(NR>2){print "--add-host "$2":"$1}}') -d myzookeeper 3

 6)查看所有的容器主机名和IP 

1

docker inspect -f '{{.Name}} - {{.NetworkSettings.IPAddress }}' $(docker ps -aq)

7)查看zookeeper状态

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

[root@localhost zk_docker_file]# telnet 172.17.0.2 2181

Trying 172.17.0.2...

Connected to 172.17.0.2.

Escape character is '^]'.

stat

Zookeeper version: 3.4.12-e5259e437540f349646870ea94dc2658c4e44b3b, built on 03/27/2018 03:55 GMT

Clients:

/172.17.0.1:40332[0](queued=0,recved=1,sent=0)

 

Latency min/avg/max: 0/0/0

Received: 2

Sent: 1

Connections: 1

Outstanding: 0

Zxid: 0x0

Mode: follower

Node count: 4

 

8)用客户端连接

1

./zookeeper-3.4.12/bin/zkCli.sh -server  172.17.0.3:2181

9)zookeeper的c++使用

1

https://github.com/yandaren/zk_cpp

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值