docker 部署 ElasticSearch;Kibana

ELasticSearch

创建网络
复制代码
docker network create es-net

ES配合Kibana使用时需要组网,使两者运行在同一个网络下

命令
复制代码
docker run -d \
--name es \
-e "discovery.type=single-node" \
-v /usr/local/es/data:/usr/share/elasticsearch/data \
-v /usr/local/es/plugins:/usr/share/elasticsearch/plugins \
--privileged=true \
--network es-net \
-p 9200:9200 \
-p 9300:9300 \
elasticsearch:7.12.1
解释
复制代码
-d 				后台运行
--name	 		容器名称
-e				环境变量设置es为单节点
-v				容器内文件挂载到宿主机
--privileged	容器内root操作权限
-p				端口号映射
问题

通过 ip:9200 测试,应该返回下方的 JSON

但是,发现启动后自动退出,通过命令查看运行日志(看到了熟悉的 Java 堆栈,ES 是基于 Lucene 由 Java 实现的)。

复制代码
docker logs es

报错:java.nio.file.AccessDeniedException: /usr/share/elasticsearch/data/nodes

解决

问题是 /usr/share/elasticsearch/data/nodes 路径的权限问题,该路径是容器内路径。看run命令发现挂载到宿主机的 /usr/local/es/data 路径下,则将宿主机的文件操作权限调整为 777,再次尝试启动成功

复制代码
chmod 777 /usr/local/es/data

Kibana

命令
复制代码
docker run -d \
--name kibana \
-e ELASTICSEARCH_HOSTS=http://es:9200 \
--network=es-net \
-p 5601:5601 \
kibana:7.12.1
解释
复制代码
-e 			启动时配置参数 指定es服务地址和端口号
--network	编排到与es相同的网络
版本号		需要与es版本号一致

通过 ip:5601 进入 web 端,可以在 DevTool 中对 ES 执行 DSL 语句。

IK分词器

命令

进入docker 的 es 容器中

复制代码
docker exec -it es /bin/bash

./bin/elasticsearch-plugin install \
https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.12.1/elasticsearch-analysis-ik-7.12.1.zip

exit
docker restart es
解释
复制代码
-it 			将宿主机的标准输入以伪窗口的形式发送到 docker 容器 es 中(类似ssh连接到docker容器内部) 
/bin/bash		打开容器中的 bash
./bin/elasticsearch-plugin 	调用 es 插件功能
install			下载安装 github 的 IK 插件
exit 			退出伪窗口,回到宿主机的命令行
restart			重启es容器

警告信息,输入 y 继续

在Kibana的DevTools执行

结果,ik分词器安装成功

相关推荐
武子康2 天前
调查研究-197 FAISS vs Elasticsearch 全面对比:从向量检索、全文搜索到 RAG 选型指南
人工智能·elasticsearch·agent
Elasticsearch3 天前
Elasticsearch ES|QL:现已支持视图、子查询和读取时模式定义
elasticsearch
Patrick_Wilson4 天前
从「改个端口」到 502:Next.js on k8s 的容器端口、Service 映射与 env 覆盖
docker·kubernetes·next.js
Suroy4 天前
DockerView-Go:用 Go 写一个终端 Docker 监控工具,顺便做了个 Web 仪表盘
docker
云恒要逆袭4 天前
运行你的第一个Docker容器
后端·docker·容器
宋均浩5 天前
# Docker 镜像瘦身实战:从 1.2G 到 80MB 的五个优化步骤
ci/cd·docker
程序员老赵6 天前
10 分钟部署 OpenCode:Docker 一键安装,浏览器打开就能用 AI 写代码(附完整命令与排错)
docker·容器·ai编程
Elasticsearch6 天前
Kibana 中的 SNMP 拓扑数据:从采集到 Canvas
elasticsearch
WangMingHua1116 天前
LM Studio Docker 部署——本地大模型一键启动
docker
曲幽7 天前
别再用网页翻译看源码了!你的私人翻译神器LibreTranslate,部署避坑指南来了
python·docker·web·pot·translate·libretranslate·arogstranslate