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分词器安装成功

相关推荐
一个程序猿老马6 小时前
003、Git核心概念:仓库、工作区、暂存区、版本库
大数据·git·elasticsearch
披着羊皮不是狼6 小时前
Git完整学习总结
git·学习·elasticsearch
一个程序猿老马7 小时前
005、Git三板斧(1):git add - 将文件纳入版本管理
大数据·git·elasticsearch
.柒宇.7 小时前
信创实战:银河麒麟 V10 服务器安装、网络配置与 Docker 环境搭建
linux·运维·docker·国产信创·麒麟操作系统
IT从业者张某某7 小时前
基于Docker的hadoop容器安装hive并测试
hive·hadoop·docker
杨浦老苏7 小时前
Docker容器管理面板Dockhand
运维·docker·群晖
努力的搬砖人.7 小时前
配置 Docker 镜像加速器
运维·docker·容器
江湖有缘7 小时前
实时监控所有端口,Docker 部署 WatchYourPorts 保姆级教程
运维·docker·容器
IT从业者张某某7 小时前
基于Docker的hadoop容器安装zookeeper
hadoop·docker·zookeeper
guojb8247 小时前
告别部署踩坑:用 Docker Compose 优雅搞定多前端站点、HTTPS 与 SSE 推送
nginx·docker·https