Docker部署ELK(二)-构建ELK基础镜像

接上构建ELK基础镜像

了解完故事背景,现在我要动手开始搭建ELK平台了。
因为ELK需要用到jdk的环境,所以决定做一个基础镜像。
参考自:http://www.jianshu.com/p/460a307adebb

1.首先建立目录结构,我是在本地搭建的。

elkbase目录结构

解释:因为Elasticsearch需要Java 8以上的版本,所以在oracle官网下载最新的jdk,解压到tools目录下。
Dockerfile文件内容如下:

FROM centos:latest
MAINTAINER Luomeng
VOLUME [ "/opt/product/data/" ]
RUN  /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN /bin/echo -e "ZONE="Asia/Shanghai"\nUTC=false\nRTC=false" > /etc/sysconfig/clock
RUN mkdir /opt/product/tools/
ADD ./tools /opt/product/tools/
ENV JAVA_HOME /opt/product/tools/jdk1.8.0_131
ENV JRE_HOME /opt/product/tools/jdk1.8.0_131/jre
ENV CLASS_PATH .:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
ENV PATH $PATH:$JAVA_HOME/bin:$JRE_HOME/bin
CMD ["/usr/sbin/init"]

✅在命令行,cd到elkbase目录,执行docker build -t elkbase:v1.0 ./,如果看到最后输出Successfully built 镜像ID,表示build成功了,运行docker images应该就可以看到名称为elkbase的image。

✅我要启动一个elkbase的容器,验证一下Java的环境是否准备成功。
运行:docker run -i -t elkbase:v1.0 /bin/bash
(1)-i 选项:表示启动容器后,打开标准收入设备(STDIN),可使用键盘进行输入。
(2)-t 选项:表示启动容器后,分配一个伪终端(pseudo-TTY),将与服务器建立一个会话。
(3)elkbase:v1.0 参数:表示我们刚才通过build命令构建时给镜像命名的名字和版本号。
(4)/bin/bash 参数:表示运行容器的bash应用程序。

不出意外的话,会以root用户进入到基于centos系统构建的elkbase镜像生成的容器中,运行java -version,查看是否安装Java成功了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 0. 前言 docker是什么?docker是用GO语言开发的应用容器引擎,基于容器化,沙箱机制的应用部署技术。可...
    sessionboy阅读 9,282评论 2 49
  • Docker — 云时代的程序分发方式 要说最近一年云计算业界有什么大事件?Google Compute Engi...
    ahohoho阅读 15,723评论 15 147
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,095评论 19 139
  • 以下原文转载于(https://docs.docker.com/docker-for-mac/)(想找中文版的最新...
    Veekend阅读 12,260评论 0 17
  • 我们相会在秋季(236)(25) ■曾晓琴 又是秋夜绵绵 午夜的小雨 我不知不觉想起你 回忆总是刺痛我的心 望着秋...
    宏昌居士123阅读 1,459评论 0 10

友情链接更多精彩内容