docker安装elasticsearch一直启动不成功, bootstrap checks failed成功解决

docker 安装elasticsearch镜像,制作容器

docker pull elasticsearch-7.9.3
docker run -di --name=tensquare_es -p 9200:9200 -p 9300:9300 elasticsearch.7.9.3

查看容器是否成功,然后启动

docker ps -a
docker start 14fd7ef73b99

再次查看发现 没有成功启动

#执行进入容器命令
docker exec -it 30a29a905ebb /bin/bash

docker安装elasticsearch一直启动不成功, bootstrap checks failed成功解决
发现容器没有成功启动

#查看容器日志
docker logs --since 30m 14fd7ef73b99

docker安装elasticsearch一直启动不成功, bootstrap checks failed成功解决

发现报错了,一查原来这是由于elasticsearch默认分配jvm空间大小为1g-2g,内存不足以分配导致。

解决方法就是修改jvm空间分配

找到jvm.options配置文件
find /var/lib/docker/overlay/ -name jvm.options

docker安装elasticsearch一直启动不成功, bootstrap checks failed成功解决
vi进入jvm.options
docker安装elasticsearch一直启动不成功, bootstrap checks failed成功解决

图示部分修改为

-Xms512m
-Xmx512m

2.启动报错:
ERROR: [2] bootstrap checks failed
[1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
[2] the default discovery settin:gs are unsuitable for production use; at least one of [discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes] must be configureddocker安装elasticsearch一直启动不成功, bootstrap checks failed成功解决
原因:官方的elasticsearch缺少配置,需要配置两处地方

修改max_map_count大小

sysctl -w vm.max_map_count=262144

查看max_map_count,确保修改成功

sysctl -a|grep vm.max_map_count

修改:/etc/security/limits.conf 在文档尾追加

  • soft nofile 65536
  • hard nofile 65536

跳转目录

cd /var/lib/docker/overlay2/

找到elasticsearch.yml配置文件

find . -name “elasticsearch.yml”

vi进入配置文件,在配置文件中增加两行配置

bootstrap.system_call_filter: false
cluster.initial_master_nodes: [“node-1”]

然后Esc 保存:wq! 退出!重新启动就OK了!