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

接上构建ELK基础镜像

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

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

Docker部署ELK(二)-构建ELK基础镜像_第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成功了。

你可能感兴趣的:(Docker部署ELK(二)-构建ELK基础镜像)