docker pull elasticsearch:7.6.0 mkdir /home/elk vi /home/elk/elasticsearch.yml cluster.name: "docker-cluster" network.host: 0.0.0.0 # 访问ID限定,0.0.0.0为不限制,生产环境请设置为固定IP transport.host: 0.0.0.0 # elasticsearch节点名称 node.name: node-1 # elasticsearch节点信息 cluster.initial_master_nodes: ["node-1"] # 下面的配置是关闭跨域验证 http.cors.enabled: true http.cors.allow-origin: "*" docker run -di -p 9200:9200 -p 9300:9300 --name=elasticsearch -v /home/elk/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml elasticsearch:7.6.0
启动 elasticsearch 闪退
docker container ls -a docker logs elasticsearch
[root@ELK usr]# docker logs elasticsearch
OpenJDK 64-Bit Server VM warning: Option UseConcMarkSweepGC was deprecated in version 9.0 and will likely be removed in a future release.
2020-12-25 01:26:26,175 main ERROR No Log4j 2 configuration file found. Using default configuration (logging only errors to the console), or user programmatically provided configurations. Set system property 'log4j2.debug' to show Log4j 2 internal initialization logging. See https://logging.apache.org/log4j/2.x/manual/configuration.html for instructions on how to configure Log4j 2
Exception in thread "main" SettingsException[Failed to load settings from /usr/share/elasticsearch/config/elasticsearch.yml]; nested: AccessDeniedException[/usr/share/elasticsearch/config/elasticsearch.yml];
at org.elasticsearch.node.InternalSettingsPreparer.prepareEnvironment(InternalSettingsPreparer.java:85)
at org.elasticsearch.cli.EnvironmentAwareCommand.createEnv(EnvironmentAwareCommand.java:100)
at org.elasticsearch.cli.EnvironmentAwareCommand.createEnv(EnvironmentAwareCommand.java:91)
at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:86)
at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:125)
at org.elasticsearch.cli.Command.main(Command.java:90)
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:126)
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:92)
Caused by: java.nio.file.AccessDeniedException: /usr/share/elasticsearch/config/elasticsearch.yml
at java.base/sun.nio.fs.UnixException.translateToIOException(UnixException.java:90)
at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:111)
at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:116)
at java.base/sun.nio.fs.UnixFileSystemProvider.newByteChannel(UnixFileSystemProvider.java:219)
at java.base/java.nio.file.Files.newByteChannel(Files.java:374)
at java.base/java.nio.file.Files.newByteChannel(Files.java:425)
at java.base/java.nio.file.spi.FileSystemProvider.newInputStream(FileSystemProvider.java:420)
at java.base/java.nio.file.Files.newInputStream(Files.java:159)
at org.elasticsearch.common.settings.Settings$Builder.loadFromPath(Settings.java:1070)
at org.elasticsearch.node.InternalSettingsPreparer.prepareEnvironment(InternalSettingsPreparer.java:83)
... 7 more
docker container ls -a docker container stop elasticsearch #删除 container docker container rm elasticsearch #新建container docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:7.6.0 #拷出配置文件 docker cp elasticsearch:/usr/share/elasticsearch/config/ /home/elk/ chmod +777 /home/elk/config/ -R mkdir /home/elk/data chmod + 777 /home/elk/data -R #停止container docker container stop elasticsearch #删除 container docker container rm elasticsearch docker run --name elasticsearch -v /home/elk/config/:/usr/share/elasticsearch/config -v /home/elk/data/:/usr/share/elasticsearch/data -p 9200:9200 -p 9300:9300 --privileged=true -d elasticsearch:7.6.0 docker container ls -a docker logs elasticsearch 成功