自定义elasticsearch-ik Docker镜像

头像
码农笔录
2021-09-27 程序人生 阅读量 9851

下载分词器

# 在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/*