您现在的位置是:首页 > 编程 > 

使用 docker 部署 elasticsearch 并安装 ik 中文分词器

2025-07-28 14:21:51
使用 docker 部署 elasticsearch 并安装 ik 中文分词器 这是一篇本地 docker 部署笔记,基本上是参考以下文章。记录一些实际操作中遇到的问题。ElasticSearch最新版快速入门详解_静待花开-CSD博客_elasticsearch入门 ElasticSearch中文分词,看这一篇就够了_静待花开-CSD博客_elasticsearch 中文分词 最清晰易懂的E

使用 docker 部署 elasticsearch 并安装 ik 中文分词器

这是一篇本地 docker 部署笔记,基本上是参考以下文章。记录一些实际操作中遇到的问题。

ElasticSearch最新版快速入门详解_静待花开-CSD博客_elasticsearch入门

ElasticSearch中文分词,看这一篇就够了_静待花开-CSD博客_elasticsearch 中文分词

最清晰易懂的Elasticsearch操作手册|收藏夹必备_静待花开-CSD博客_elasticsearch 操作手册

elasticsearch使用ik中文分词器 - SegmentFault 思否

1 镜像准备

docker search elasticsearch

搜索 elasticsearch 可以看到如下镜像,

这里使用第二个,集成了 es 和 kibana 。

nshou/elasticsearch-kibana - Docker Image | Docker Hub

拉取镜像

docker pull nshou/elasticsearch-kibana

创建并运行容器

Terminal window

代码语言:javascript代码运行次数:0运行复制
docker run -d -p 9200:9200 -p 900:900 -p 5601:5601 --name eskibana  nshou/elasticsearch-kibana

进入容器(这里的 ddade0ae 是上一句返回的容器 ID)

docker exec -it ddade0ae bash

2 将数据/配置目录挂载

如果不使用挂载,容器被删除之后,数据就没有了。实际使用中,通常将持久化数据挂载出来。

需要挂载的文件/目录:配置文件,数据目录,插件目录。

可以先将容器中默认的配置文件拷贝出来,免得自己新建一个。

这里 018d550c168c 是容器 ID,命令在宿主机执行,执行目录是自己选定的一个准备用来挂载的目录。

我这里的目录是:/Users/myname/Documents/docker/es/vol/eskibana

Terminal window

代码语言:javascript代码运行次数:0运行复制
docker cp 018d550c168c:/home/elasticsearch/kibana-7.16.2-linux-x86_64/config/kibana.yml ./kibana-bak/docker cp 018d550c168c:/home/elasticsearch/elasticsearch-7.16.2/config/elasticsearch.yml ./es-bak/

将文件拷贝出来之后,准备挂载的目录。

最终目录是这个样子,bak 目录是做备份用的。

赋读写权限

Terminal window

代码语言:javascript代码运行次数:0运行复制
chmod -R 777 ./eschmod -R 777 ./kibana

将之前运行起来的容器关闭(否则端口会占用),使用挂载运行新的容器

Terminal window

代码语言:javascript代码运行次数:0运行复制
docker run --name esk \-p 9200:9200 -p 900:900 -p 5601:5601 \-e "=single-node" \-e ES_JAVA_OPTS="-Xms64m -Xmx512m" \-v /Users/xxx/Documents/docker/es/vol/eskibana/es/config/elasticsearch.yml:/home/elasticsearch/elasticsearch-7.16.2/config/elasticsearch.yml \-v /Users/xxx/Documents/docker/es/vol/eskibana/es/data:/home/elasticsearch/elasticsearch-7.16.2/data \-v /Users/xxx/Documents/docker/es/vol/eskibana/es/plugins:/home/elasticsearch/elasticsearch-7.16.2/plugins \-v /Users/xxx/Documents/docker/es/vol/eskibana/kibana/config/kibana.yml:/home/elasticsearch/kibana-7.16.2-linux-x86_64/config/kibana.yml \-v /Users/xxx/Documents/docker/es/vol/eskibana/kibana/data:/home/elasticsearch/kibana-7.16.2-linux-x86_64/data \-v /Users/xxx/Documents/docker/es/vol/eskibana/kibana/plugins:/home/elasticsearch/kibana-7.16.2-linux-x86_64/plugins \-d nshou/elasticsearch-kibana

参考:

Docker部署Elasticsearch

docker安装ElasticSearch

如果运行时发现如下错误,

代码语言:javascript代码运行次数:0运行复制
Error respe from daemon: Mounts denied:The path /es/data is not shared from the host and is not known to Docker.You can configure shared paths from Docker -> Preferences... -> Resources -> File Sharing.See  for more info.

1 根据提示检查 docker 配置,2 使用绝对路径

参考:关于 is not shared from OS X and is not known to Docker._程序和我有一个能跑就行了-CSD博客

安装中文分词插件

我这里使用的是使用先手动下载,再使用命令安装的方式。

.1 从 github 下载插件 zip 包

.2 将 zip 包拷贝到容器中

docker cp ./ik.zip f8ad1fb16b0:/home/elasticsearch/mytmp

. 在容器中安装插件

这句需要在 es 目录中的 bin 目录下运行,elasticsearch-plugin 并不是一个全局指令

./elasticsearch-plugin install file:///home/elasticsearch/mytmp/ik.zip

安装完成插件之后,需要重启容器

重启时,如果出现如下错误,

代码语言:javascript代码运行次数:0运行复制
Exception in thread "main" : /home/elasticsearch/elasticsearch-7.16.2/plugins/.DS_Store

则需要删除 plugins 目录中的 .DS_Store 文件

Terminal window

代码语言:javascript代码运行次数:0运行复制
ls -arm .DS_Store

然后重启容器,测试中文分词

代码语言:javascript代码运行次数:0运行复制
POST /_analyze{"analyzer": "ik_max_word","text": "且听风吟"}

结果:

代码语言:javascript代码运行次数:0运行复制
{  "tokens" : [    {      "token" : "且听",      "start_offset" : 0,      "end_offset" : 2,      "type" : "C_WORD",      "position" : 0    },    {      "token" : "风吟",      "start_offset" : 2,      "end_offset" : 4,      "type" : "C_WORD",      "position" : 1    }  ]}
4 测试 ES 与 kibana

访问 http://127.0.0.1:5601 以访问 kibana,在 dev tools 中做测试。

使用 elasticsearch-head Chrome 插件查看数据。

5 测试挂载效果

将上面启动的容器关闭,使用上面的命令,启动一个新的容器

Terminal window

代码语言:javascript代码运行次数:0运行复制
docker run --name esk2 \-p 9200:9200 -p 900:900 -p 5601:5601 \-e "=single-node" \-e ES_JAVA_OPTS="-Xms64m -Xmx512m" \-v /Users/xxx/Documents/docker/es/vol/eskibana/es/config/elasticsearch.yml:/home/elasticsearch/elasticsearch-7.16.2/config/elasticsearch.yml \-v /Users/xxx/Documents/docker/es/vol/eskibana/es/data:/home/elasticsearch/elasticsearch-7.16.2/data \-v /Users/xxx/Documents/docker/es/vol/eskibana/es/plugins:/home/elasticsearch/elasticsearch-7.16.2/plugins \-v /Users/xxx/Documents/docker/es/vol/eskibana/kibana/config/kibana.yml:/home/elasticsearch/kibana-7.16.2-linux-x86_64/config/kibana.yml \-v /Users/xxx/Documents/docker/es/vol/eskibana/kibana/data:/home/elasticsearch/kibana-7.16.2-linux-x86_64/data \-v /Users/xxx/Documents/docker/es/vol/eskibana/kibana/plugins:/home/elasticsearch/kibana-7.16.2-linux-x86_64/plugins \-d nshou/elasticsearch-kibana

如果前一个容器没有删除,这里的 —name 需要取个新名字。

如果一切正常,等待重启完成之后,之前的数据,kibana 中配的看板等,应该都还存在。

补充

如果使用 ./elasticsearch-plugin install 安装有问题,可以直接使用解压的方式处理。

elasticsearch-analysis-ik分词器下载与安装_analysis-ik下载-CSD博客

原文链接:

本作品采用 「署名 4.0 国际」 许可协议进行许可,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。 原始发表:2022年1月日 |,如有侵权请联系 cloudcommunity@tencent 删除部署插件中文分词容器elasticsearch

#感谢您对电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格的认可,转载请说明来源于"电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格

本文地址:http://www.dnpztj.cn/biancheng/1222180.html

相关标签:无
上传时间: 2025-07-25 18:16:48
留言与评论(共有 14 条评论)
本站网友 陈兵
27分钟前 发表
"type"
本站网友 北京二手车政策
13分钟前 发表
原始发表:2022年1月日 |
本站网友 汽车团购网
29分钟前 发表
如有侵权请联系 cloudcommunity@tencent 删除前往查看部署插件中文分词容器elasticsearch
本站网友 稀饭网
4分钟前 发表
且在文章页面明显位置给出原文链接
本站网友 av终结者
23分钟前 发表
代码语言:javascript代码运行次数:0运行复制Exception in thread "main"
本站网友 茶油的作用与功效
22分钟前 发表
"text"
本站网友 奥运射箭比赛
3分钟前 发表
使用 docker 部署 elasticsearch 并安装 ik 中文分词器 这是一篇本地 docker 部署笔记
本站网友 天津大港二手房
16分钟前 发表
900 -p 5601
本站网友 浙江中江控股有限公司
11分钟前 发表
"C_WORD"
本站网友 虎杖的功效与作用
19分钟前 发表
/home/elasticsearch/elasticsearch-7.16.2/plugins/.DS_Store则需要删除 plugins 目录中的 .DS_Store 文件Terminal window代码语言:javascript代码运行次数:0运行复制ls -arm .DS_Store然后重启容器
本站网友 一部影院网址
13分钟前 发表
等待重启完成之后
本站网友 成都跳伞塔
18分钟前 发表
/home/elasticsearch/elasticsearch-7.16.2/plugins/.DS_Store则需要删除 plugins 目录中的 .DS_Store 文件Terminal window代码语言:javascript代码运行次数:0运行复制ls -arm .DS_Store然后重启容器
本站网友 出口享惠情况
3分钟前 发表
/home/elasticsearch/kibana-7.16.2-linux-x86_64/config/kibana.yml \-v /Users/xxx/Documents/docker/es/vol/eskibana/kibana/data