docker启动elasticsearch异常java.nio.file.NoSuchFileException

报错示例: 

docker启动elasticsearch异常Exception in thread "main" java.nio.file.NoSuchFileException: /usr/share/elasticsearch/config/jvm.options

hdback-elasticsearch_1  | Exception in thread "main" java.nio.file.NoSuchFileException: /usr/share/elasticsearch/config/jvm.options
hdback-elasticsearch_1  | 	at java.base/sun.nio.fs.UnixException.translateToIOException(UnixException.java:92)
hdback-elasticsearch_1  | 	at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:111)
hdback-elasticsearch_1  | 	at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:116)
hdback-elasticsearch_1  | 	at java.base/sun.nio.fs.UnixFileSystemProvider.newByteChannel(UnixFileSystemProvider.java:215)
hdback-elasticsearch_1  | 	at java.base/java.nio.file.Files.newByteChannel(Files.java:369)
hdback-elasticsearch_1  | 	at java.base/java.nio.file.Files.newByteChannel(Files.java:415)
hdback-elasticsearch_1  | 	at java.base/java.nio.file.spi.FileSystemProvider.newInputStream(FileSystemProvider.java:384)
hdback-elasticsearch_1  | 	at java.base/java.nio.file.Files.newInputStream(Files.java:154)
hdback-elasticsearch_1  | 	at org.elasticsearch.tools.launchers.JvmOptionsParser.main(JvmOptionsParser.java:60)
docker_hdback-elasticsearch_1 exited with code 1

原因总结:

由于我的elasticsearch启动时使用的是docker-compose方式,并配置了config目录的挂载数据卷,而启动时宿主机的挂载数据文件夹中并没有jvm.options文件,因此出现该文件找不到的情况。

解决办法:

先将挂载数据卷配置注释,启动elasticsearch后将elasticsearch容器中的config/文件夹下的文件拷出到宿主机,重新启动即可。

1.将容器中文件拷出到宿主机挂载卷文件夹下

docker cp [容器ID]:容器文件路径  要拷贝的宿主机路径

例如我的:

docker cp 2a202fa:/usr/share/elasticsearch/plugins/ ./es/es-with-ik-plugins/

2.开启挂载卷配置,重新启动elasticsearch

PS 举一反三: 

如果启动容器时出现文件找不到,首先关闭挂载卷配置,启动尝试,若没问题,即可判断是因为挂在卷文件不充足原因,按照上述方式解决即可。

还有一种情况是读写权限问题,给自己的挂在卷赋权限即可,类似的情况如:docker启动elasticsearch异常Failed to create node environment(解决)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值