1)下载
|
1 2 |
|
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 |
|
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 |
|
7)查看zookeeper状态
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
|
8)用客户端连接
|
1 |
|
9)zookeeper的c++使用
|
1 |
|
本文详细介绍如何使用Docker构建并运行ZooKeeper集群,包括下载JDK与ZooKeeper,编写Dockerfile,创建启动脚本,配置主机hosts文件,生成Docker镜像,启动容器,以及检查ZooKeeper状态等关键步骤。
1183

被折叠的 条评论
为什么被折叠?



