docker启动elasticsearch报错插件找不到

docker启动elasticsearch安装plugins之后报错读取不到文件
情景再现:启动docker 下的elasticsearch 通过run命令实现指定路径挂载


docker run -p 9200:9200 -p 9300:9300 --name elasticsearch \
-e "discovery.type=single-node" \
-e "cluster.name=elasticsearch" \
-e "ES_JAVA_OPTS=-Xms512m -Xmx1024m" \
-v /mydata/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
-v /mydata/elasticsearch/data:/usr/share/elasticsearch/data \
-d elasticsearch:7.17.3

```bash
docker ps #没有发现elasticsearch
docker ps -a #发现其处于未启动状态

查看日志

docker logs elasticsearch

报错信息如下:
Exception in thread “main” java.nio.file.NotDirectoryException: /usr/share/elasticsearch/plugins/commons-codec-1.9.jar

排查
1、检查docker中plugins目录的挂载路径是否正确
2、检查文件权限是否可读可写,可以使用以下命令赋权

chmod -R 777 filepath #filepath 是docker内的plugins挂载到本机的路径

3、注意plugins目录下应该只有解压好的插件,不能直接存放下载的包,需要通过unzip解压成文件夹,并且把下载的包删掉。它会读取plugins下的所有内容当成文件夹读取,把未解压的包当成文件夹处理就会报错,即这个包下面找不到文件

[root@LWZCentOS ~]# docker logs elasticsearch 
Exception in thread "main" java.nio.file.NotDirectoryException: /usr/share/elasticsearch/plugins/commons-codec-1.9.jar
	at java.base/sun.nio.fs.UnixFileSystemProvider.newDirectoryStream(UnixFileSystemProvider.java:439)
	at java.base/java.nio.file.Files.newDirectoryStream(Files.java:482)
	at java.base/java.nio.file.Files.list(Files.java:3793)
	at org.elasticsearch.tools.launchers.BootstrapJvmOptions.getPluginInfo(BootstrapJvmOptions.java:49)
	at org.elasticsearch.tools.launchers.BootstrapJvmOptions.bootstrapJvmOptions(BootstrapJvmOptions.java:34)
	at org.elasticsearch.tools.launchers.JvmOptionsParser.jvmOptions(JvmOptionsParser.java:137)
	at org.elasticsearch.tools.launchers.JvmOptionsParser.main(JvmOptionsParser.java:86)
[root@LWZCentOS ~]# docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
[root@LWZCentOS ~]# docker rm elasticsearch 
elasticsearch

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值