我在docker容器中使用ElasticSearch,并尝试将ES数据挂载到外部驱动器。我尝试了一种我认为很明显的方法,但是我在ES容器中得到了一个路径存在错误- * 而不是 * 我在SO中其他地方看到的典型权限错误。
(base) peter@Peters-MBP14 ~ % docker run --name es01-t7v --net elastic -p 9200:9200 -v /Volumes/T7/pdr/dom-2.2.1/es-data-01:/usr/share/elasticsearch/data -it docker.elastic.co/elasticsearch/elasticsearch:8.8.2
Exception in thread "main" java.nio.file.NoSuchFileException: /usr/share/elasticsearch/data
at java.base/sun.nio.fs.UnixException.translateToIOException(UnixException.java:92)
at java.base/sun.nio.fs.UnixException.asIOException(UnixException.java:115)
at java.base/sun.nio.fs.UnixFileSystemProvider.newDirectoryStream(UnixFileSystemProvider.java:477)
at java.base/java.nio.file.Files.newDirectoryStream(Files.java:481)
at java.base/java.nio.file.Files.list(Files.java:3767)
at org.elasticsearch.xpack.security.cli.AutoConfigureNode.isDirEmpty(AutoConfigureNode.java:1144)
at org.elasticsearch.xpack.security.cli.AutoConfigureNode.execute(AutoConfigureNode.java:166)
at org.elasticsearch.server.cli.ServerCli.autoConfigureSecurity(ServerCli.java:165)
at org.elasticsearch.server.cli.ServerCli.execute(ServerCli.java:86)
at org.elasticsearch.common.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:54)
at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:85)
at org.elasticsearch.cli.Command.main(Command.java:50)
at org.elasticsearch.launcher.CliToolLauncher.main(CliToolLauncher.java:64)
字符串
但是当我将挂载路径更改为我的主驱动器(而不是我的外部驱动器)时,它启动得很好:第一个月
虽然错误并不建议这一点,我检查了外部驱动器文件夹上的权限,它似乎OK。
(base) peter@Peters-MBP14 ~ % ls -al /Volumes/T7/pdr/dom-2.2.1/es-data-01
total 512
drwxrwxrwx 1 peter staff 131072 Jul 19 19:18 .
drwxrwxrwx 1 peter staff 131072 Jul 19 17:30 ..
型
我还尝试了一个从本地高清到外部高清的符号链接,得到了一个不同的错误(超出了这个SO问题的范围)
1条答案
按热度按时间pgvzfuti1#
NoSuchFileException
意味着用户可能没有访问该文件夹的权限。您需要确保
/Volumes/T7/pdr/dom-2.2.1/es-data-01
上的用户/组及其权限与/Users/peter/es-test-mnt1
相同。