自定义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/*