自己动手制作elasticsearch-head的Docker镜像

原因很简单:elasticsearch-head的官方Docker镜像只支持elasticsearch5.x版本,而现在elasticsearch6.x版本已经广泛使用了,以下就是elasticsearch-head官方的支持情况:

  1. 先去hub.docker.com上搜索,如下图,最后一次更新已经是两年前,只支持elasticsearch5版本:

在这里插入图片描述

  1. elasticsearch-head官网说得很清楚,只支持elasticsearch5、2、1版本,并不支持6,如下图:

在这里插入图片描述

如果在Docker环境下运行elasticsearch版本是6.x版本,是没有与之匹配的head插件镜像的,此时的解决方法有以下三种:

  1. 把head插件搭建在Docker环境之外,也就是在物理机部署head;

  2. 寻找非官方的head镜像;

  3. 掌握head插件镜像的制作方法,随时按照自己的需要制作支持任意版本的镜像;

今天的文章讨论的就是第三种方法:自己制作elasticsearch-head插件;

实战环境

  1. 操作系统:CentOS 7.6

  2. docker:17.03.2-ce

  3. docker-compose:version 1.23.2

不用Docker的时候,elasticsearch-head是如何在物理机上部署的

想做出elasticsearch-head镜像,先要对elasticsearch-head的常规部署方式有所了解,简单的罗列如下:

  1. 准备好nodejs环境;

  2. 下载elasticsearch-head源码;

  3. 安装grunt-cli;

  4. 安装elasticsearch-head;

  5. 用grunt命令启动;

更多部署elasticsearch-head的详情请参考《Linux环境快速搭建elasticsearch6.5.4集群和Head插件》

编写Dockerfile文件

前面已清楚了head插件的常规部署流程,接下来的事情就简单了,按照上述流程制作Dockerfile,制作之前要注意以下几点:

  1. 基础镜像选哪个?我这里选择的是nodejs的官方镜像,这样就可以不用搭建nodejs环境了,最好选择alpine版本,这样的镜像体积更小;

  2. 多个shell命令的操作,尽量用&&连接起来,这样生成的镜像layer数更少,体积也会更小;

  3. head插件的源码地址,我选用了master版本的地址,您可以根据自己的需要改成指定的分支;

完整的Dockerfile内容如下,每一行都有详细的注释,就不多赘述了:

#Docker image of elasticsearch-head

VERSION 6

Author: bolingcavalry

#基础镜像使用node:10.15.0,以便通过npm来安装head插件

FROM node:10.15.0-alpine

#作者

MAINTAINER BolingCavalry zq2599@gmail.com

#定义下载源文件的路径

ENV SRC_DOWN_PATH /usr/src/app

#创建文件夹用于保存下载的源码

RUN mkdir -p $SRC_DOWN_PATH && \

#进入该文件夹

cd $SRC_DOWN_PATH && \

#下载源码

wget https://codeload.github.com/mobz/elasticsearch-head/zip/master && \

#解压

unzip master && \

#解压后,压缩文件可以删除了

rm master && \

#进入解压后的文件夹

cd elasticsearch-head-master && \

#设置为taobao,加速npm安装速度

npm config set registry http://registry.npm.taobao.org && \

#安装grunt

npm install -g grunt-cli && \

#安装head

npm install

#设置默认工作目录为解压后的源码文件夹

WORKDIR $SRC_DOWN_PATH/elasticsearch-head-master

#保留9100端口

EXPOSE 9100

#启动时即启动head服务

CMD [ “grunt”, “server” ]

构建镜像

  1. 在Dockerfile所在目录执行以下命令即可构建镜像:

docker build -t bolingcavalry/elasticsearch-head:6 .

构建的过程中,执行npm install的时候会在github下载源码,此时有很大概率超时报错退出,多重试几次是可以成功的;

  1. 构建成功后,执行命令docker history bolingcavalry/elasticsearch-head:6查看构建信息,如下:

[root@hedy head]# docker history bolingcavalry/elasticsearch-head:6

IMAGE CREATED CREATED BY SIZE COMMENT

e6833fce7a81 9 hours ago /bin/sh -c #(nop) CMD [“grunt” “server”] 0 B

34889db72a32 9 hours ago /bin/sh -c #(nop) EXPOSE 9100/tcp 0 B

761b38387909 9 hours ago /bin/sh -c #(nop) WORKDIR /usr/src/app/ela… 0 B

893cec2c77e6 9 hours ago /bin/sh -c mkdir -p $SRC_DOWN_PATH && cd $… 139 MB

ead96e1a5663 9 hours ago /bin/sh -c #(nop) ENV SRC_DOWN_PATH=/usr/… 0 B

4648dcf3c904 9 hours ago /bin/sh -c #(nop) MAINTAINER BolingCavalr… 0 B

288d2f688643 4 weeks ago /bin/sh -c #(nop) CMD [“node”] 0 B

4 weeks ago /bin/sh -c apk add --no-cache --virtual .b… 5.08 MB

4 weeks ago /bin/sh -c #(nop) ENV YARN_VERSION=1.12.3 0 B

4 weeks ago /bin/sh -c addgroup -g 1000 node && ad… 61.2 MB

4 weeks ago /bin/sh -c #(nop) ENV NODE_VERSION=10.15.0 0 B

5 weeks ago /bin/sh -c #(nop) CMD [“/bin/sh”] 0 B

5 weeks ago /bin/sh -c #(nop) ADD file:2ff00caea4e83df… 4.41 MB

验证镜像

  1. 接下来在Docker上部署elasticsearch+elasticsearch-head,验证做好的镜像是否好用,创建docker-compose.yml文件,内容如下:

version: ‘2.2’

services:

elasticsearch:

image: docker.elastic.co/elasticsearch/elasticsearch:6.5.4

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

img

读者福利

由于篇幅过长,就不展示所有面试题了,感兴趣的小伙伴

35K成功入职:蚂蚁金服面试Java后端经历!「含面试题+答案」

35K成功入职:蚂蚁金服面试Java后端经历!「含面试题+答案」

35K成功入职:蚂蚁金服面试Java后端经历!「含面试题+答案」

更多笔记分享

35K成功入职:蚂蚁金服面试Java后端经历!「含面试题+答案」
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
1jeHpHZ-1712988753093)]

[外链图片转存中…(img-ccaLMFwe-1712988753094)]

[外链图片转存中…(img-sFBY5m0E-1712988753094)]

更多笔记分享

[外链图片转存中…(img-6BJ8tqxQ-1712988753094)]
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值