参赛话题:Java微服务

Elasticsearch启动的时候,在docker run之后使用指令docker ps会发现没有运行的,那就说明启动然后就挂掉了,这就可能是内存不足造成的,跟着做下面的步骤方可解决。

这里补充一下,如果你进行以下步骤的时候,使用docker ps是显示了Elasticsearch的端口了,说明就可以了,启动不了的原因是还没加载完,等一会儿再启动就可以成功登陆了

第一内存不足,我们调整交换机的内存

调个3-4G都够用了,然后我们重启交换机,可能就会解决(注意一下,因为这个Elasticsearch启动比较慢,重启过后运行后等几分钟在等待看是否可以访问了)。

如果没解决,请继续下面的步骤

因为可能分给Elasticsearch的内存太小了,所以我们修改一下

①进入etc目录,编辑sysctl.conf文件:

vi /etc/sysctl.conf

②添加配置

进入后使用i插入,插入在不是注释的行,然后点击Esc,按下shift+:,输入wq!完成更改

vm.max_map_count=262144

③执行一下

sysctl -p

这次再重启一下,如果还是有问题,请继续下一步

修改limits.conf文件

vi /etc/security/limits.conf

添加下面内容

* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096

再次重启虚拟机,这样就可以彻底解决启动失败的问题了。

补充一下:启用的命令使用这个,加上-v的话,会报错

docker run -d \
    --name es \
    -e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \
    -e "discovery.type=single-node" \
    --privileged \
    --network es-net \
    -p 9200:9200 \
    -p 9300:9300 \
elasticsearch:7.12.1

启动成功!

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐