docker自定义elasticsearch镜像——集成IK分词器

docker下的elasticsearch,如何安装ik分词器

借助elasticsearch的官方镜像,我们在docker环境能快速搭建elasticsearch服务,但是ik分词器如何安装呢?

第一种方法:执行docker exec命令进入容器,再按照物理机的步骤来安装,显然每次创建容器都要这么做一次的话代价太高了;
第二种方法:做个集成了ik分词器的elasticsearch镜像,这样每个容器运行的时都自带了ik分词器;

今天实战的内容就是上面的第二种方法:自制elasticsearch镜像,该镜像继承了ik分词器;

版本信息

 

  1. 操作系统:CentOS 7.6
  2. docker:18.03.1-ce
  3. docker-compose:version 1.17.1
  4. elasticsearch:这里选用的是6.4.3版本的elasticsearch

常规的安装步骤

先来梳理一下常规的ik分词器安装步骤:

准备maven环境;
下载ik分词器zip包;
解压zip包,复制到elasticsearch的插件目录;
启动elasticsearch;
以上就是常规安装步骤,接下来就是把这些在elasticsearch的镜像中再做一遍即可;

编写Dockerfile

Dockerfile的内容如下,已有详细注释不再赘述:

# Docker image of elasticsearch with ik tokenizer
# VERSION 6.4.3
# Author: SenWang
 
#基础镜像使用elasticsearch:6.4.3
FROM elasticsearch:6.4.3
 
#作者
MAINTAINER SenWang 
 
#es插件目录
ENV ES_PLUGINS_PATH /usr/share/elasticsearch/plugins
 
#定义存放ik分词器文件的目录
ENV ik_SRC_COMPILE_PATH /opt/ik_build
 
#创建存放ik分词器文件的目录
RUN mkdir $ik_SRC_COMPILE_PATH && \
 
#进入编译ik分词器文件的目录
cd $ik_SRC_COMPILE_PATH && \
 
#下载ik包
wget https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.4.3/elasticsearch-analysis-ik-6.4.3.zip && \

#解压zip包
unzip elasticsearch-analysis-ik-6.4.3 -d  analysis-ik&& \
 
#构建成功后,将文件移动到插件目录
mv analysis-ik $ES_PLUGINS_PATH/

构建镜像


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

docker build -t ws/elasticsearch-with-ik:6.4.3 .


构建的过程中,mave编译构建的时候会在下载很多jar包,比较耗时,请耐心等待;

构建成功后,执行命令docker history ws/elasticsearch-with-ik:6.4.3查看构建信息,如下:
 

IMAGE               CREATED             CREATED BY                                      SIZE                COMMENT
0cc453dd10e3        26 minutes ago      /bin/sh -c mkdir $ik_SRC_COMPILE_PATH && cd …   14.4MB
2ccc5464aad3        About an hour ago   /bin/sh -c #(nop)  ENV ik_SRC_COMPILE_PATH=/…   0B
a1c08654f9c6        About an hour ago   /bin/sh -c #(nop)  ENV ES_PLUGINS_PATH=/usr/…   0B
9b12b1d57a62        About an hour ago   /bin/sh -c #(nop)  MAINTAINER SenWang            6 months ago        /bin/sh -c #(nop)  ENTRYPOINT ["/usr/local/b…   0B
           6 months ago        /bin/sh -c #(nop)  LABEL org.label-schema.sc…   0B
           6 months ago        /bin/sh -c #(nop)  EXPOSE 9200 9300             0B
           6 months ago        /bin/sh -c chgrp 0 /usr/local/bin/docker-ent…   5.05kB
           6 months ago        /bin/sh -c #(nop) COPY --chown=1000:0file:08…   4.36kB
           6 months ago        /bin/sh -c #(nop)  ENV PATH=/usr/share/elast…   0B
           6 months ago        /bin/sh -c #(nop) COPY --chown=1000:0dir:a33…   225MB
           6 months ago        /bin/sh -c #(nop) WORKDIR /usr/share/elastic…   0B
           6 months ago        /bin/sh -c groupadd -g 1000 elasticsearch &&…   296kB
           6 months ago        /bin/sh -c yum update -y &&     yum install …   25.7MB
           6 months ago        /bin/sh -c ln -sf /etc/pki/ca-trust/extracte…   40B
           6 months ago        /bin/sh -c #(nop)  ENV JAVA_HOME=/opt/jdk-10…   0B
           6 months ago        /bin/sh -c curl -s https://download.java.net…   343MB
           6 months ago        /bin/sh -c #(nop)  ENV ELASTIC_CONTAINER=true   0B
           7 months ago        /bin/sh -c #(nop)  CMD ["/bin/bash"]            0B
           7 months ago        /bin/sh -c #(nop)  LABEL org.label-schema.sc…   0B
           7 months ago        /bin/sh -c #(nop) ADD file:fbe9badfd2790f074…   200MB

验证

使用docker run 或者docker-compose 方式启动镜像即可!

docker自定义elasticsearch镜像——集成IK分词器_第1张图片

END!!!

 

最后给各位看官来波福利!

阿里云服务器代金券和折扣免费领:https://promotion.aliyun.com/ntms/yunparter/invite.html?userCode=ypbt9nme

性能级主机2-5折:https://promotion.aliyun.com/ntms/act/enterprise-discount.html?userCode=ypbt9nme

新用户云通讯专享8折:https://www.aliyun.com/acts/alicomcloud/new-discount?userCode=ypbt9nme

新老用户云主机低4折专项地址:https://promotion.aliyun.com/ntms/act/qwbk.html?userCode=ypbt9nme

680元即可注册商标专项地址:https://tm.aliyun.com/?userCode=ypbt9nme

17元/月云主机:https://promotion.aliyun.com/ntms/act/qwbk.html?spm=5176.11533447.1097531.13.22805cfaiTv7SN&userCode=ypbt9nme

 

你可能感兴趣的:(大数据,小海豚Docker)