docker部署ElasticSearch相关问题解决
1.内存不足,启动失败
原因是es需求大,jvm一般不足,需要修改配置
sudo sysctl -w vm.max_map_count=262144
2.Kibana server is not ready yet
1.关闭防火墙(学习的时候最好把防火墙关掉)
实际环境要配置防火墙规则。不可能真的关闭防火墙
//查看防火墙状态
systemctl status firewalld.service
//暂时关闭防火墙
systemctl stop firewalld
3.安装IK中文分词插件
分词插件最好下载到本地,拷贝到容器内直接安装,要不速度太慢
复制命令:docker cp
只要把插件解压在指定目录即可
/usr/share/elasticsearch/plugins/ik
解压完成,重启容器
docker restart 容器id
因为容器停止,插件就需要重新安装。所以安装完成之后,最好就不要再重启容器
也可以在安装完成之后,制作自己已安装好插件的镜像。
进入容器命令
docker exec -it 容器ID bash (ps:并不需要全名,只需要唯一,哪怕一两个字母也行)
容器内直接安装命令:
elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.5.4/elasticsearch-analysis-ik-6.5.4.zip
在ES启动完成之时:(localhost是你安装机器的IP)
当出现如上信息表示ES安装没问题。
具体可以去后台看一下日志输出
命令:docker logs -f 容器id
在确保ES安装没问题的前提下
再访问http://localhost:5601/,如果kibana安装没问题会显示界面。
但kibana这特别容易出问题:
1.首先确认版本是否全部保持一致。
2.其次看查看防火墙相关问题。学习就直接关最好,排除一个明显又很容易被人遗忘的大坑。
3.这两个软件启动都不快,适时地的耐心等待,因为本人就是因为没有耐心等待而被误导。(启动时长真的感人)
4.至于网上让进容器内修改kibana配置文件,路径/usr/share/kibana/config/kibana.yml根本是乱弹琴。实测,跟这个没有关系,希望不要被误导
5.docker-compose下.yml配置文件
version: '3.8'
services:
elasticsearch:
restart: always
image: daocloud.io/library/elasticsearch:6.5.4
container_name: elasticsearch
ports:
- 9200:9200
# environment:
# - ES_JAVA_OPTS=-Xms512m -Xmx512m
kibana:
image: daocloud.io/library/kibana:6.5.4
restart: always
container_name: kibana
ports:
- 5601:5601
environment:
- elasticsearch.url= http://localhost:9200
depends_on:
- elasticsearch