Docker部署ELK(二)-構建ELK基礎鏡像

接上構建ELK基礎鏡像

了解完故事背景,現在我要動手開始搭建ELK平臺了。
因為ELK需要用到jdk的環境,所以決定做一個基礎鏡像。
參考自:http://www.lxweimin.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成功了。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 0. 前言 docker是什么?docker是用GO語言開發的應用容器引擎,基于容器化,沙箱機制的應用部署技術。可...
    sessionboy閱讀 3,884評論 2 49
  • Docker — 云時代的程序分發方式 要說最近一年云計算業界有什么大事件?Google Compute Engi...
    ahohoho閱讀 15,636評論 15 147
  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,993評論 19 139
  • 以下原文轉載于(https://docs.docker.com/docker-for-mac/)(想找中文版的最新...
    Veekend閱讀 7,645評論 0 17
  • 我們相會在秋季(236)(25) ■曾曉琴 又是秋夜綿綿 午夜的小雨 我不知不覺想起你 回憶總是刺痛我的心 望著秋...
    朝花夕拾123閱讀 191評論 0 10