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 logs --since 30m 14fd7ef73b99
发现报错了,一查原来这是由于elasticsearch默认分配jvm空间大小为1g-2g,内存不足以分配导致。
解决方法就是修改jvm空间分配
找到jvm.options配置文件
find /var/lib/docker/overlay/ -name jvm.options
vi进入jvm.options
图示部分修改为
-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 configured
原因:官方的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了!