自定义elasticsearch-ik Docker镜像

内容纲要

下载分词器

# 在Linux根目录创建空文件夹并进入文件夹
mkdir dockerfile

cd dockerfile

# 下载IK插件文件(如果提示没有wget命令则先执行:`yum install -y wget`,再执行下载命令)
wget https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.8.0/elasticsearch-analysis-ik-7.8.0.zip

# 解压(如果提示没有unzip命令则先执行:`yum install -y unzip`,再执行下载命令)
unzip elasticsearch-analysis-ik-7.8.0.zip -d elasticsearch-analysis-ik

创建DockerFile

vi Dockerfile

FROM elasticsearch:7.8.0

MAINTAINER nelson "mail_yanpeng@163.com"

ADD elasticsearch-analysis-ik /usr/share/elasticsearch/plugins/elasticsearch-analysis-ik

编译创建镜像

在docker文件夹路径下执行,后面有个 ‘.’ 不要忽略 docker build -f Dockerfile -t elasticsearch-ik:7.8.0 .

docker build -f DockerFile -t elasticsearch-ik:7.8.0 .

上传到dockerhub

上传到dockerhub,需要先docker login登录账户,然后编译的时候需要加上你的docker用户名,如下所示:

docker build -f Dockerfile -t yirenyishi/elasticsearch-ik:7.8.0 .

docker login

docker push yirenyishi/elasticsearch-ik:7.8.0

运行镜像

docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" yirenyishi/elasticsearch-ik:7.8.0

推荐使用docker-compose启动

// 创建文件
vi elasticsearch.yml

version: '3'
services:
  elasticsearch:
    image: yirenyishi/elasticsearch-ik:7.8.0
    container_name: elasticsearch-ik
    restart: always
    volumes:
      - /opt/elasticsearch7/data:/usr/share/elasticsearch/data:rw
      - /opt/elasticsearch7/conf/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
    ports:
      - "9200:9200"
      - "9300:9300"
    environment:
      - "ES_JAVA_OPTS=-Xms1024m -Xmx1024m"
      - discovery.type=single-node
    privileged: true

// 启动
docker-compose -f elasticsearch.yml up -d

如果启动报如下错误,需要给data文件夹授权

Likely root cause: java.nio.file.AccessDeniedException: /usr/share/elasticsearch/data/nodes

chmod +777 /opt/elasticsearch7/*

标签