造个轮子 - Hadoop镜像
说明
- 镜像基于xiaows/debian8-jdk8-ssh:2.0
- zookeeper版本3.4.10
安装zookeeper
- 下载zookeeper到本地, 解压
- 删除doc文件夹(让镜像变得更小)
- 编写dockerfile 3.1 通过echo命令在dockerfile中直接写入相关配置文件 3.2 删除*.cmd,并将*.sh赋予可执行权限 3.3 在/root目录下生成一个启动zk集群的脚本cluster-zk.sh 3.4 拷贝当前dockerfile到镜像中
#Dockerfile-zookeeper3410-jdk
FROM xiaows/debian8-jdk8-ssh:2.0
MAINTAINER XIAOWS <xiaows08@163.com>
WORKDIR /root
#install zookeeper
ADD zookeeper-3.4.10/ /usr/local/zookeeper
ENV ZOOKEEPER_HOME=/usr/local/zookeeper
ENV PATH=$PATH:$ZOOKEEPER_HOME/bin
RUN mkdir -p /data/zkData;\
echo 'export ZOOKEEPER_HOME=/usr/local/zookeeper' >> /etc/profile;\
echo 'export PATH=$PATH:$ZOOKEEPER_HOME/bin' >> /etc/profile;\
. /etc/profile;\
echo 'tickTime=2000' > $ZOOKEEPER_HOME/conf/zoo.cfg;\
echo 'initLimit=10' >> $ZOOKEEPER_HOME/conf/zoo.cfg;\
echo 'syncLimit=5' >> $ZOOKEEPER_HOME/conf/zoo.cfg;\
echo 'dataDir=/data/zkData' >> $ZOOKEEPER_HOME/conf/zoo.cfg;\
echo 'clientPort=2181' >> $ZOOKEEPER_HOME/conf/zoo.cfg;\
echo 'server.1=zk-slave0:2888:3888' >> $ZOOKEEPER_HOME/conf/zoo.cfg;\
echo 'server.2=zk-slave1:2888:3888' >> $ZOOKEEPER_HOME/conf/zoo.cfg;\
echo 'server.3=zk-slave2:2888:3888' >> $ZOOKEEPER_HOME/conf/zoo.cfg;\
rm -rfv $ZOOKEEPER_HOME/bin/*.cmd;\
# ln -s $ZOOKEEPER_HOME /root/zookeeper;\
echo '#!/bin/bash' >> cluster-zk.sh;\
echo 'if [ $# = 0 ]; then' >> cluster-zk.sh;\
echo ' echo "Please input commod of zkServer {start|start-foreground|stop|restart|status|upgrade|print-cmd}"' >> cluster-zk.sh;\
echo ' exit 1' >> cluster-zk.sh;\
echo 'fi' >> cluster-zk.sh;\
echo 'for i in 0 1 2; do' >> cluster-zk.sh;\
echo ' ssh zk-slave$i "echo `expr $i + 1` > /data/zkData/myid;$ZOOKEEPER_HOME/bin/zkServer.sh $1;jps"' >> cluster-zk.sh;\
echo 'done' >> cluster-zk.sh;\
# echo 'tailf -500 zookeeper.out' >> cluster-zk.sh;\
chmod +x cluster-zk.sh;
COPY ./Dockerfile-zookeeper3410-jdk /root/
复制代码
构建镜像
docker build -f Dockerfile-zookeeper3410-jdk -t xiaows/zookeeper3410-jdk:2.0 .
接下来就可以用之前那个启动集群镜像脚本来启动容器和集群啦~
./start-cluster.sh xiaows/zookeeper3410-jdk:2.0 zk
./cluster-zk.sh start