zoukankan      html  css  js  c++  java
  • 使用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

    启动成功,问题解决

  • 相关阅读:
    [Swift]LeetCode1249. 移除无效的括号 | Minimum Remove to Make Valid Parentheses
    [Swift]LeetCode1240. 铺瓷砖 | Tiling a Rectangle with the Fewest Squares
    一位资深程序员大牛给予Java初学者的学习路线建议
    Java基础——集合源码解析 List List 接口
    Java定时任务调度详解
    Java实现CORS跨域请求
    假如时光倒流,我会这么学习Java
    Java后端程序员1年工作经验总结
    20个高级Java面试题汇总
    JVM内幕:Java虚拟机详解
  • 原文地址:https://www.cnblogs.com/erlou96/p/13803188.html
Copyright © 2011-2022 走看看