文档章节

构建docker-zookeeper镜像(非集群版)

zhouyalei
 zhouyalei
发布于 2017/02/15 18:04
字数 911
阅读 200
收藏 2

精选30+云产品,助力企业轻松上云!>>>

准备工作

用到的工具, Xshell5, Xftp5, jdk-7u79-linux-x64.tar.gz, zookeeper-3.4.9.tar.gz, docker.io/centos:latest镜像

关于docker的安装和设置加速, 请参考这篇博文centos7系统下 docker 环境搭建

jdk7和zookeeper 可以去我的百度网盘分享里面拿 https://pan.baidu.com/share/home?uk=2567919817

创建工作目录

mkdir -p /z/docker && cd /z/docker

通过Xftp工具把下载的jdk7和zookeeper复制到当前目录

image

解压缩, 并且重命名文件夹

mkdir jdk && tar -zxvf jdk-7u79-linux-x64.tar.gz -C jdk --strip-components 1
mkdir zookeeper && tar -zxvf zookeeper-3.4.9.tar.gz -C zookeeper --strip-components 1

进入zookeeper下的conf文件夹, 把zoo_sample.cfg复制一份, 重命名为zoo.cfg, zookeeper启动的默认配置文件为zoo.cfg

cp zoo_sample.cfg zoo.cfg

最终目录结构:

[root@localhost docker]# ls
Dockerfile  jdk  jdk-7u79-linux-x64.tar.gz  zookeeper  zookeeper-3.4.9.tar.gz

如果想精简jdk, 压缩最终生成的镜像大小, 可以参考这篇博文 从零开始构建一个centos+jdk7+tomcat7的镜像文件

适量删减jdk包中内容, 再进入下一步操作

制作Dockerfile文件

编辑Dockerfile文件, 插入以下内容

#使用的基础镜像
FROM docker.io/centos:latest
#作者信息
MAINTAINER yzzhouyalei "yzzhouyalei@foxmail.com"
#创建目录(这个目录是指将来打包的镜像, 里面的目录, 不是当前的宿主机目录)
RUN mkdir -p /z/java/jdk1.7.0_79 && mkdir -p /z/java/zookeeper-3.4.9 && mkdir -p /tmp/zookeeper
#把当前目录下的jdk文件夹添加到镜像
ADD jdk /z/java/jdk1.7.0_79
ADD zookeeper /z/java/zookeeper-3.4.9
#开放端口
EXPOSE 2181 2888 3888
#添加环境变量
ENV JAVA_HOME /z/java/jdk1.7.0_79
ENV PATH $PATH:$JAVA_HOME/bin
#容器入口
ENTRYPOINT ["/z/java/zookeeper-3.4.9/bin/zkServer.sh"]
#前台运行, 如果不设置这个, zookeeper后台运行的话, 容器会自动关闭, 进入Exited状态
CMD ["start-foreground"]

构建镜像

执行命令docker build命令构建镜像

[root@localhost docker]# docker build -t centos-jdk7-zookeeper:0.0.1 .
Sending build context to Docker daemon   529 MB
Step 1 : FROM docker.io/centos:latest
 ---> 67591570dd29
Step 2 : MAINTAINER yzzhouyalei "yzzhouyalei@foxmail.com"
.............................................#步骤省略
Removing intermediate container 0bb26e35b54d
Successfully built deca0be3af0e
[root@localhost docker]# docker images
REPOSITORY                                                        TAG                 IMAGE ID            CREATED             SIZE
centos-jdk7-zookeeper                                             0.0.1               deca0be3af0e        6 seconds ago       541.5 MB
centos-jdk7-tomcat7                                               0.0.1               1821b3e09e20        2 days ago          347.7 MB
registry.cn-hangzhou.aliyuncs.com/repos_zyl/centos-jdk7-tomcat7   0.0.2               1821b3e09e20        2 days ago          347.7 MB
192.168.16.181:5000/centos-jdk-tomcat7                            0.0.2               1821b3e09e20        2 days ago          347.7 MB
192.168.16.181:5000/centos-base                                   0.0.1               67591570dd29        8 weeks ago         191.8 MB
docker.io/centos                                                  latest              67591570dd29        8 weeks ago         191.8 MB
[root@localhost docker]# 

最终镜像大小541MB, 建议精简一下jdk文件夹下的内容应该可以控制在300-400MB之间

运行镜像

[root@localhost docker]# docker run -d -p 2181:2181 --name test-zookeeper centos-jdk7-zookeeper:0.0.1
f45d1de49626dc7a9afa6017470eb71a35015e3dd123100749150ff57fa77775
[root@localhost docker]# docker ps
CONTAINER ID        IMAGE                         COMMAND                  CREATED             STATUS              PORTS                                        NAMES
f45d1de49626        centos-jdk7-zookeeper:0.0.1  "/z/java/zookeeper-3."   3 seconds ago       Up 2 seconds        2888/tcp, 0.0.0.0:2181->2181/tcp, 3888/tcp   test-zookeeper
  • -d: 表示后台守护模式运行
  • -p: 小写p后面跟宿主机端口:容器端口映射
  • --name: 为启动的容器命名
  • 最后一个参数为repository+tag
  • 看到name为test-zookeeper的容器状态为Up, 说明容器在运行中

测试

进入宿主机的zookeeper/bin目录, 运行zkCli.sh客户端, 与容器内的zookeeper交互

[root@localhost bin]# ./zkCli.sh -server localhost:2181
Connecting to localhost:2181
2017-02-15 15:44:55,331 [myid:] - INFO  [main:Environment@100] - Client environment:zookeeper.version=3.4.9-1757313, built on 08/23/2016 06:50 GMT
...........................#省略
WATCHER::

WatchedEvent state:SyncConnected type:None path:null
[zk: localhost:2181(CONNECTED) 0] ####已经连上了
[zk: localhost:2181(CONNECTED) 1] get /zookeeper

cZxid = 0x0
ctime = Thu Jan 01 08:00:00 CST 1970
mZxid = 0x0
mtime = Thu Jan 01 08:00:00 CST 1970
pZxid = 0x0
cversion = -1
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 0
numChildren = 1

用的宿主机IP地址:2181, 连上容器内部的zookeeper了

如果是外部调用的话, 宿主机可能需要开放2181端口

到此步骤->制作docker-jdk7-zookeeper镜像(非集群版) 已经完成

zhouyalei
粉丝 1
博文 6
码字总数 4590
作品 0
郑州
私信 提问
加载中
请先登录后再评论。
Docker 搭建 Zookeeper、Dubbo、Spring Boot 项目

项目介绍 本项目旨在应用阿里开源的分布式服务框架 dubbo 温馨提示:_blank方式打开链接,请按住Ctrl键 https://amoswang0626.github.io/docker-dubbo/ 主要内容包括 docker 构建 zookeeper ...

AmosWang
2018/12/20
1.9K
0
使用 Docker 一步搞定 ZooKeeper 集群的搭建

ZooKeeper为分布式应用提供高效、高可用的分布式协调服务,它有三种运行模式:单机模式、伪集群模式和集群模式。本文通过探索ZooKeeper的官方Docker镜像,来看看怎样快速搭建一个ZooKeeper的...

qq_41587243
2018/05/25
0
0
运维之我的docker-compose快速创建zookeeper集群

很多时候大家不同的容器想要不用启动参数这个时候不妨使用脚本封装来实现,官方也很推荐这个做法,这里介绍下如何使用脚本传参快速启动一个zookeeper集群。 zookeeper集群大家知道有部分通用...

qq850900633
2017/03/20
0
0
docker部署zookeeper

docker部署zookeeper 时间 2015-03-05 20:52:51 openstack 原文 http://openstack.wiaapp.com/?p=1048 主题 ZooKeeper Docker 需要考虑的问题: 1 日志,快照等如何存放; 2 同一个镜像怎么做...

风雪了
2015/06/05
5
0
kafka的Docker镜像使用说明(wurstmeister/kafka)

版权声明:欢迎转载,请注明出处,谢谢。 https://blog.csdn.net/boling_cavalry/article/details/85395080 在hub.docker.com网站上,Star最多的kafka镜像是wurstmeister/kafka,今天一起来实...

博陵精骑
2018/12/31
0
0

没有更多内容

加载失败,请刷新页面

加载更多

跨越了6个阶段,我仍然是生物信息学初学者

首先非常欢迎大家分享自己与生物信息学/生信技能树的故事! 上一期是:我如何从生物科学到生物信息 这一期是我在朋友圈看到了我们单细胞天地常驻编辑周运来的真情流露,邀请他投稿的我们生信...

biotrainee
前天
0
0
网飞是如何运用心理学来完善其客户体验的

原文地址:https://36kr.com/p/5289228 译者:俊一 占据全球网站流量 15%的奈飞,其用户体验设计背后有哪些秘密? 神译局是 36 氪旗下编译团队,关注科技、商业、职场、生活等领域,重点介绍...

高行
02/08
0
0
shell编程中的循环脚本

本文中的部分脚本来源于网络,就不申明原创了,如果这些东西自己学会了,那就是属于自己的了。 求从1加到100的和 使用for循环求和: #!/bin/bash declare -i sum=0 for ((i=1;i<=100;i++));...

Double_冬
2018/08/16
0
0
智能合约:介绍、geth、Ethereum Wallet

从看雪论坛换了一本《智能合约安全分析和审计指南》,看了一些智能合约相关的内容,因为我之前对于区块链的了解仅仅是只知道世界上有一种叫做比特币的东西,所以对于这些概念的理解还是比较困...

yichen115
04/26
0
0
Vue和React技术风格上的不同

在主流框架中,Vue和React都属于全球热门,各自有着大量用户,两者之间的优缺点便带来了众多讨论。 那么这两者之间的关键区别在于哪些方面?为何熟练掌握Vue成为越来越多公司的岗位要求? Vu...

若川
07/02
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部