使用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

启动成功,问题解决

原文地址:https://www.cnblogs.com/erlou96/p/13803188.html