docker启动elasticsearch异常Failed to create node environment(解决)

version: '3'
services:
  elasticsearch:
    image: elasticsearch:5.6.8
    container_name: elasticsearch
    environment:
      - "cluster.name=elasticsearch" #设置集群名称为elasticsearch
      - "discovery.type=single-node" #以单一节点模式启动
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m" #设置使用jvm内存大小
    volumes:
      - /mydata/elasticsearch/plugins:/usr/share/elasticsearch/plugins #插件文件挂载
      - /mydata/elasticsearch/data:/usr/share/elasticsearch/data #数据文件挂载
    ports:
      - 9200:9200
  kibana:
    image: kibana:5.6.8
    container_name: kibana
    links:
      - elasticsearch:es #可以用es这个域名访问elasticsearch服务
    depends_on:
      - elasticsearch #kibana在elasticsearch启动之后再启动
    environment:
      - "elasticsearch.hosts=http://es:9200" #设置访问elasticsearch的地址
    ports:
      - 5601:5601
  logstash:
    image: logstash:5.6.8
    container_name: logstash
    volumes:
      - /mydata/logstash/logstash-springboot.conf:/usr/share/logstash/pipeline/logstash.conf #挂载logstash的配置文件
    depends_on:
      - elasticsearch #kibana在elasticsearch启动之后再启动
    links:
      - elasticsearch:es #可以用es这个域名访问elasticsearch服务
    ports:
      - 4560:4560

docker-compose启动报错:

hdback-elasticsearch_1  |     org.elasticsearch.bootstrap.StartupException: java.lang.IllegalStateException: Failed to create node environment
hdback-elasticsearch_1  |     at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:140) ~[elasticsearch-6.4.3.jar:6.4.3]
hdback-elasticsearch_1  |     at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:127) ~[elasticsearch-6.4.3.jar:6.4.3]
hdback-elasticsearch_1  |     at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:86) ~[elasticsearch-6.4.3.jar:6.4.3]
hdback-elasticsearch_1  |     at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:124) ~[elasticsearch-cli-6.4.3.jar:6.4.3]
hdback-elasticsearch_1  |     at org.elasticsearch.cli.Command.main(Command.java:90) ~[elasticsearch-cli-6.4.3.jar:6.4.3]
hdback-elasticsearch_1  |     at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:93) ~[elasticsearch-6.4.3.jar:6.4.3]
hdback-elasticsearch_1  |     at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:86) ~[elasticsearch-6.4.3.jar:6.4.3]
hdback-elasticsearch_1  | Caused by: java.lang.IllegalStateException: Failed to create node environment
hdback-elasticsearch_1  |     at org.elasticsearch.node.Node.<init>(Node.java:277) ~[elasticsearch-6.4.3.jar:6.4.3]
hdback-elasticsearch_1  |     at org.elasticsearch.node.Node.<init>(Node.java:256) ~[elasticsearch-6.4.3.jar:6.4.3]
hdback-elasticsearch_1  |     at org.elasticsearch.bootstrap.Bootstrap$5.<init>(Bootstrap.java:213) ~[elasticsearch-6.4.3.jar:6.4.3]
hdback-elasticsearch_1  |     at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:213) ~[elasticsearch-6.4.3.jar:6.4.3]
hdback-elasticsearch_1  |     at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:326) ~[elasticsearch-6.4.3.jar:6.4.3]
hdback-elasticsearch_1  |     at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:136) ~[elasticsearch-6.4.3.jar:6.4.3]
hdback-elasticsearch_1  |     ... 6 more
hdback-elasticsearch_1  | Caused by: java.nio.file.AccessDeniedException: /usr/share/elasticsearch/data/nodes
hdback-elasticsearch_1  |     at sun.nio.fs.UnixException.translateToIOException(UnixException.java:90) ~[?:?]
hdback-elasticsearch_1  |     at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:111) ~[?:?]
hdback-elasticsearch_1  |     at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:116) ~[?:?]
hdback-elasticsearch_1  |     at sun.nio.fs.UnixFileSystemProvider.createDirectory(UnixFileSystemProvider.java:385) ~[?:?]
hdback-elasticsearch_1  |     at java.nio.file.Files.createDirectory(Files.java:682) ~[?:?]
hdback-elasticsearch_1  |     at java.nio.file.Files.createAndCheckIsDirectory(Files.java:789) ~[?:?]
hdback-elasticsearch_1  |     at java.nio.file.Files.createDirectories(Files.java:775) ~[?:?]
hdback-elasticsearch_1  |     at org.elasticsearch.env.NodeEnvironment.<init>(NodeEnvironment.java:207) ~[elasticsearch-6.4.3.jar:6.4.3]
hdback-elasticsearch_1  |     at org.elasticsearch.node.Node.<init>(Node.java:274) ~[elasticsearch-6.4.3.jar:6.4.3]
hdback-elasticsearch_1  |     at org.elasticsearch.node.Node.<init>(Node.java:256) ~[elasticsearch-6.4.3.jar:6.4.3]
hdback-elasticsearch_1  |     at org.elasticsearch.bootstrap.Bootstrap$5.<init>(Bootstrap.java:213) ~[elasticsearch-6.4.3.jar:6.4.3]
hdback-elasticsearch_1  |     at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:213) ~[elasticsearch-6.4.3.jar:6.4.3]
hdback-elasticsearch_1  |     at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:326) ~[elasticsearch-6.4.3.jar:6.4.3]
hdback-elasticsearch_1  |     at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:136) ~[elasticsearch-6.4.3.jar:6.4.3]

异常说是创建节点环境失败,操作/usr/share/elasticsearch/data/nodes的IO错误,尝试给此目录添加读写权限后,依旧没什么**用,灵机一动是不是挂载目录没有权限导致的?

chmod 777 挂载目录路径

例如我的:chmod 777 /mydata/elasticsearch/data

再次docker-compose启动, OK!!!!问题解决☺


转载:https://blog.csdn.net/s1078229131/java/article/details/90763811

亲测,没毛病~~~~~~~~~~~~~~~

原文地址:https://www.cnblogs.com/brithToSpring/p/13158555.html