Docker运行Elasticsearch 8.6.1时启动检查失败求助
Elasticsearch Docker启动Bootstrap检查失败解决办法
这类Bootstrap检查失败通常是因为Elasticsearch的系统资源配置不满足运行要求,以下是针对性的解决步骤:
1. 调整Elasticsearch内存分配
Elasticsearch默认要求至少2GB堆内存,Docker默认分配的资源不足会触发检查失败。启动时通过环境变量指定合适的内存参数:
docker run --name es-node01 --net elastic -p 9200:9200 -p 9300:9300 -e "ES_JAVA_OPTS=-Xms1g -Xmx1g" -t docker.elastic.co/elasticsearch/elasticsearch:8.6.1
-Xms1g和-Xmx1g分别设置初始堆内存和最大堆内存,可根据你的机器配置调整(比如2GB内存的机器设为1g,4GB以上内存的机器可设为2g)。
2. 调整宿主机虚拟内存参数
Elasticsearch需要足够的虚拟内存映射数,执行以下命令临时生效:
sysctl -w vm.max_map_count=262144
如果需要永久生效,编辑/etc/sysctl.conf文件,添加一行:
vm.max_map_count=262144
执行sysctl -p让配置立即生效。
3. 配置Docker容器的资源限制
启动容器时添加文件描述符和线程数的限制参数,满足Elasticsearch的硬性要求:
docker run --name es-node01 --net elastic -p 9200:9200 -p 9300:9300 --ulimit nofile=65536:65536 --ulimit nproc=4096:4096 -e "ES_JAVA_OPTS=-Xms1g -Xmx1g" -t docker.elastic.co/elasticsearch/elasticsearch:8.6.1
--ulimit nofile设置最大文件描述符,--ulimit nproc设置最大线程数。
4. 查看详细错误日志定位问题
如果以上操作仍未解决,查看容器日志获取具体失败项:
docker logs es-node01
日志会明确指出哪一项Bootstrap检查未通过,再针对性处理即可。
内容的提问来源于stack exchange,提问作者miladjurablu0001002002
相关产品推荐
相关产品推荐

