> 技术文档 > 虚拟机docker elasticsearch启动失败

虚拟机docker elasticsearch启动失败

使用官方的quickstart Start a single-node cluster in Docker | Elastic Docs 发现elasticsearch启动不起来

使用docker logs es01 查看日志

{\"@timestamp\":\"2025-07-25T01:52:18.463Z\", \"log.level\": \"INFO\", \"message\":\"bound or publishing to a non-loopback address, enforcing bootstrap checks\", \"ecs.version\": \"1.2.0\",\"service.name\":\"ES_ECS\",\"event.dataset\":\"elasticsearch.server\",\"process.thread.name\":\"main\",\"log.logger\":\"org.elasticsearch.bootstrap.BootstrapChecks\",\"elasticsearch.node.name\":\"dff29d81e7e8\",\"elasticsearch.cluster.name\":\"docker-cluster\"}{\"@timestamp\":\"2025-07-25T01:52:18.476Z\", \"log.level\":\"ERROR\", \"message\":\"node validation exception\\n[1] bootstrap checks failed. You must address the points described in the following [1] lines before starting Elasticsearch. For more information see [https://www.elastic.co/docs/deploy-manage/deploy/self-managed/bootstrap-checks?version=9.0]\\nbootstrap check failure [1] of [1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]; for more information see [https://www.elastic.co/docs/deploy-manage/deploy/self-managed/bootstrap-checks?version=9.0#bootstrap-checks-max-map-count]\", \"ecs.version\": \"1.2.0\",\"service.name\":\"ES_ECS\",\"event.dataset\":\"elasticsearch.server\",\"process.thread.name\":\"main\",\"log.logger\":\"org.elasticsearch.bootstrap.Elasticsearch\",\"elasticsearch.node.name\":\"dff29d81e7e8\",\"elasticsearch.cluster.name\":\"docker-cluster\"}{\"@timestamp\":\"2025-07-25T01:52:18.510Z\", \"log.level\": \"INFO\", \"message\":\"stopping ...\", \"ecs.version\": \"1.2.0\",\"service.name\":\"ES_ECS\",\"event.dataset\":\"elasticsearch.server\",\"process.thread.name\":\"elasticsearch-shutdown\",\"log.logger\":\"org.elasticsearch.node.Node\",\"elasticsearch.node.name\":\"dff29d81e7e8\",\"elasticsearch.cluster.name\":\"docker-cluster\"}{\"@timestamp\":\"2025-07-25T01:52:18.669Z\", \"log.level\": \"INFO\", \"message\":\"stopped\", \"ecs.version\": \"1.2.0\",\"service.name\":\"ES_ECS\",\"event.dataset\":\"elasticsearch.server\",\"process.thread.name\":\"elasticsearch-shutdown\",\"log.logger\":\"org.elasticsearch.node.Node\",\"elasticsearch.node.name\":\"dff29d81e7e8\",\"elasticsearch.cluster.name\":\"docker-cluster\"}{\"@timestamp\":\"2025-07-25T01:52:18.672Z\", \"log.level\": \"INFO\", \"message\":\"closing ...\", \"ecs.version\": \"1.2.0\",\"service.name\":\"ES_ECS\",\"event.dataset\":\"elasticsearch.server\",\"process.thread.name\":\"elasticsearch-shutdown\",\"log.logger\":\"org.elasticsearch.node.Node\",\"elasticsearch.node.name\":\"dff29d81e7e8\",\"elasticsearch.cluster.name\":\"docker-cluster\"}ERROR: Elasticsearch did not exit normally - check the logs at /usr/share/elasticsearch/logs/docker-cluster.log{\"@timestamp\":\"2025-07-25T01:52:18.918Z\", \"log.level\": \"INFO\", \"message\":\"closed\", \"ecs.version\": \"1.2.0\",\"service.name\":\"ES_ECS\",\"event.dataset\":\"elasticsearch.server\",\"process.thread.name\":\"elasticsearch-shutdown\",\"log.logger\":\"org.elasticsearch.node.Node\",\"elasticsearch.node.name\":\"dff29d81e7e8\",\"elasticsearch.cluster.name\":\"docker-cluster\"}{\"@timestamp\":\"2025-07-25T01:52:18.930Z\", \"log.level\": \"INFO\", \"message\":\"Native controller process has stopped - no new native processes can be started\", \"ecs.version\": \"1.2.0\",\"service.name\":\"ES_ECS\",\"event.dataset\":\"elasticsearch.server\",\"process.thread.name\":\"ml-cpp-log-tail-thread\",\"log.logger\":\"org.elasticsearch.xpack.ml.process.NativeController\",\"elasticsearch.node.name\":\"dff29d81e7e8\",\"elasticsearch.cluster.name\":\"docker-cluster\"}ERROR: Elasticsearch died while starting up, with exit code 78

关键错误信息:bootstrap check failure [1] of [1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144];

简单来说max_count 太小了

解决方法

修改vim /etc/sysctl.conf

插入vm.max_map_count=262144

生效: sysctl -p
 

再重新启动es01 

docker container start es01

成功!