创建以下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