• 情况描述: 

  • 寻找原因

首先想到的是,命令行查看es日志 $ docker logs elasticsearch,定位到报错的地方如下

 

  •  解决问题的前置条件 ----   环境配置 (可能我们的环境配置不太一样,所以先说明一下我出现这种问题的环境是什么样的)         

        在 Centos7下利用docker拉取镜像:

$ docker pull elasticsearch:7.4.2

        安装命令为:

docker run --name elasticsearch -p 9200:9200 -p 9300:9300 \
-e  "discovery.type=single-node" \
-e ES_JAVA_OPTS="-Xms64m -Xmx512m" \
-v /mydata/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /mydata/elasticsearch/data:/usr/share/elasticsearch/data \
-v  /mydata/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
-d elasticsearch:7.4.2 

更换目录到 $ cd /mydata/elasticsearch/plugins(上图挂载目录) ,有如下发现

     可以看到在 ik 目录下有各种 jar包, 因此猜想可以将缺少的jar包放置此位置。   

ps:  查找各种解决方法,基本上都说 缺少maven 依赖,可是我根本没有使用springboot。因此导入依赖不适合我的情况。

  • 解决过程

        1, 下载缺少的 commons-logging-1.2.jar 包,

        2,  利用xftp 将主机 jar文件传输到 虚拟机的 ik 目录(此目录与容器相关目录挂载)下, 

   3.  重启 elasticsearch ,  $ docker restart elasticsearch, 再次查看 日志 无报错, 网页输入 192.168.56.10: 9200,(即虚拟机地址:elasticsearch端口号)可正常访问, 利用postman也能成功发送请求

 

 

ps:  可能我的情况与大家不同,但通过这次我深有感触,认真分析日志报错,定位报错原因,只要找到原因,错误总能解决的。 我就是一开始没有认真分析,所以浪费了很长时间去解决。

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐