云环境Docker中部署和启动Elasticsearch7.4.2时,出现内存和配置错误及解决方案

遇坑摘要

作者环境

腾讯云,轻量应用服务器,Docker部署Elasticsearch7.4.2
下面简称ES

开始了开始了昂!

基操

拉取ES7.4.2镜像

]# docker pull elasticssearch:7.4.2 

Docker容器中拉取ES镜像

问题出现

运行ES7.4.2镜像

docker run -p 9200:9200 -p 9300:9300 -v /var/docker/elasticsearch/data:/data elasticsearch:7.4.2

命令行说明,docker run就不说了,-p是选项开放端口,开放了docker的9200、9300端口,分别映射ES容器的9200、9300端口。-v 前台界面显示启动日志,不然出了问题还得用docker logs 查

# docker logs查启动日志语句
]# docker logs --tail 300 -f 27ce
# 27ce是我启动失败容器的前几个字

你要是问我启动失败容器在哪里查的?在这
这里查查得到,ID名称搁那给你写着呢

问题

这家伙,run没跑起来,告诉我了两个错
运行ES7.4.2出现问题
第一个, max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]。什么意思,意思我不够大,我得大起来
第二个, the default discovery settings are unsuitable for production use; at least one of [discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes] must be configured。也是,它说我没起名,没配置。咱们一个一个开始解决

解决max virtual memory,最大虚拟内容

它不是告诉你,你要把65530改成262144吗,改它

]# sysctl -w vm.max_map_count=262144

第一个这就解决了

解决配置问题,cluster.initial_master_nodes你得配

这家伙,我容器没起来呢,我怎么进ES容器内改它的elasticsearch.yml文件?docker exec肯定不好使了呗。
那咱们就不进,所有容器内的文件,那容器外也都查的到。咱们用find命令去查

# 查询语句
]# find ./ -name elasticsearch.yml
# 结果
./var/lib/docker/overlay2/1c3a17143c85b0b349cc364a01c3de3cd61929f5d3e4e0d4a661450c29c5a8bf/diff/usr/share/elasticsearch/config/elasticsearch.yml

你看看,人家这不就告诉你位置了,vim 改就行。

]# vim ./var/lib/docker/overlay2/1c3a17143c85b0b349cc364a01c3de3cd61929f5d3e4e0d4a661450c29c5a8bf/diff/usr/share/elasticsearch/config/elasticsearch.yml

改成这样
elasticsearch.yml

解决完了

直接再次跑一遍docker run命令就行了,玩吧

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值