借助elasticsearch的官方镜像,我们在docker环境能快速搭建elasticsearch服务,但是ik分词器如何安装呢?
第一种方法:执行docker exec命令进入容器,再按照物理机的步骤来安装,显然每次创建容器都要这么做一次的话代价太高了;
第二种方法:做个集成了ik分词器的elasticsearch镜像,这样每个容器运行的时都自带了ik分词器;
今天实战的内容就是上面的第二种方法:自制elasticsearch镜像,该镜像继承了ik分词器;
先来梳理一下常规的ik分词器安装步骤:
准备maven环境;
下载ik分词器zip包;
解压zip包,复制到elasticsearch的插件目录;
启动elasticsearch;
以上就是常规安装步骤,接下来就是把这些在elasticsearch的镜像中再做一遍即可;
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 方式启动镜像即可!
最后给各位看官来波福利!
阿里云服务器代金券和折扣免费领: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