docker Elasticsearch Unable to lock JVM Memory: error=12, reason=Cannot allocate memory

本文详细介绍了在创建Elasticsearch7.2容器时遇到的内存锁定错误及其解决方案,包括修改宿主机的limits.conf和sysctl.conf配置,以及在docker运行命令中添加--ulimitmemlock参数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

创建以下Elasticsearch7.2容器遇到报错信息:Unable to lock JVM Memory: error=12, reason=Cannot allocate memory

docker run -e ES_JAVA_OPTS="-Xms512m -Xmx512m" -d  -v /home/data/es/config/es.yml:/usr/share/elasticsearch/config/elasticsearch.yml  -v /home/data/es/plugins:/usr/share/elasticsearch/plugins    -v /home/data/es/data:/usr/share/elasticsearch/data --net=host --name ES01 elasticsearch:7.2.0

解决办法:

1、修改/etc/security/limits.conf文件,增加以下两行

hard nofile 80000
soft nofile 80000

2、编辑 /etc/sysctl.conf,追加以下内容:vm.max_map_count=262144保存后,执行:sysctl -p重新启动

3、上面两步,我们把宿主机系统的限制修改了,但是没有改docker容器的。

所以还得在创建容器时增加:--ulimit memlock=-1:-1

运行以下命令就不会出现这个错误了。

 docker run -e ES_JAVA_OPTS="-Xms512m -Xmx512m" -d  -v /home/data/es/config/es.yml:/usr/share/elasticsearch/config/elasticsearch.yml  -v /home/data/es/plugins:/usr/share/elasticsearch/plugins    -v /home/data/es/data:/usr/share/elasticsearch/data --net=host --ulimit memlock=-1:-1 --name ES01 elasticsearch:7.2.0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值