使用docker制作zookeeper镜像
一.准备基础环境
1.jdk
链接:https://pan.baidu.com/s/1OZx40UEaH0vv4EW4B8dXfQ
提取码:ualu
2.zookeeper 自行下载
3.将这些包都放在/opt/docker 目录下,这个目录后续作为Dockerfile的启动目录
二.安装docker
1安装docker
yum install docker
2 更改DOCKER 存储目录
因为后续还要制作别的镜像,根目录容量不够,需要修改docker的挂载路径
解决方法:参考https://blog.csdn.net/justlpf/article/details/103716138
根据docker服务的安装配置文件进行修改
vi /usr/lib/systemd/system/docker.service
在ExectStart=xxx 中添加属性
ExecStart=xxx --graph /data/lib/docker
重新更新一下docker服务
systemctl disable docker
systemctl enable docker
systemctl daemon-reload
systemctl start docker
三.下载基础镜像
1.下载centos7.2的基础镜像
docker pull docker pull docker.io/centos:centos7.2.1511
2. 查看docker 镜像
docker images
四.制作zookeeper环境包
1.解压文件
tar -zxvf /opt/zookeeper.tar
2.创建一个启动zookeeper的脚本
vim start.sh
#!/bin/bash
export ZOOKEEPER_HOME=/opt/zookeeper
#mkdir -p /opt/zookeeper/data
${ZOOKEEPER_HOME}/bin/zkServer.sh start-foreground
3.创建zookeeper data数据目录
mkdir -p /opt/zookeeper/data
4.创建zoo.cfg文件,进入zookeeper 目录
cp /opt/zookeeper/conf/zoo_sample.cfg /opt/zookeeper/conf/zoo.cfg
5.修改配置文件zoo.cfg的内容
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/opt/zookeeper/data
clientPort=2181
6.将修改后的zookeeper文件重新打成tar包
tar -czvf zookeeper.tar zookeeper
将这个包放到/opt/docker目录下。 到此:zookeeper的基础包就制作好了
五.制作jdk环境包
1.安装jdk
rpm -ivh jdk-8u74-linux-x64.rpm
默认的jdk安装路径为/usr/java/jdk1.8.0_211
2.将/usr/java/jdk1.8.0_211 文件复制到 /opt/docker 下并改名为jdk
cp -r /usr/java/jdk1.8.0_211 /opt/docker
mv /opt/docker/jdk1.8.0_211 /opt/docker/jdk
3.将jdk打成tar包
tar -czvf jdk.tar /opt/docker/jdk
将这个包放到/opt/docker目录下。到此:jdk的环境包准备好了
六.编写Dockerfile文件
1.创建dockerfile文件
vim /opt/docker/Dockerfile
2.修改内容如下
# FROM命令 定义基础包
FROM docker.io/centos:centos7.2.1511
# ADD命令 将打包文件上传到镜像的根目录/ ,会自动解压
ADD zookeeper.tar /opt
ADD jdk.tar /opt
# WORKDIR命令 定义工作目录
WORKDIR /opt
# ENV命令 设置环境
ENV JAVA_HOME /opt/jdk1.8.0_211
ENV CLASSPATH .:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV PATH $JAVA_HOME/bin:$PATH
# RUN命令 执行制作镜像过程,一个RUN对应一层
#RUN yum clean all \
RUN rm -vf /etc/localtime \
#&& cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime\
#&& rm -rfv /usr/share/backgrounds/* \
#&& rm -rfv /usr/share/doc/* \
#&& rm -rfv /usr/share/man/* \
#&& cd /usr/share/zoneinfo/ && ls |grep -v "Asia"|xargs rm -rfv \
#&& rm -rfv /var/cache/yum/* \
#&& rpm --rebuilddb \
&& chmod 755 /opt/zookeeper/start.sh
ENTRYPOINT /opt/zookeeper/start.sh
七.构建镜像
1.在/opt/docker目录下构建镜像
docker image build -t zookeeper_cool:v1.0 .
2.查看镜像
3.启动容器:映射端口,并且将Docker挂载本地目录及实现文件共享,这样重启容器,zk的数据不会丢失
docker run --rm --name coolsummer -p 2181:2181 -v /opt/docker/zookeeper/data:/opt/zookeeper/data -d zookeeper_cool:v1.0
八.验证zk是否启动成功
zkCli.sh -server 127.0.0.1:2181
启动成功,问题解决