Docker部署elasticsearch和kibana踩坑

在学习elasticsearch的时候,我安装黑马程序员的课程,将es部署到服务器的docker上。

es部署代码如下:

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

kibana部署代码如下:

docker run -d \
--name kibana \
-e ELASTICSEARCH_HOSTS=http://es:9200 \
--network=es-net \
-p 5601:5601  \
kibana:7.12.1

在服务器执行这两段代码后,docker ps显示两个容器正在运行,但之后很快服务器就奔溃,然后Xshell卡住,在卡组一个小时后恢复正常,在去服务器执行docker ps,发现容器退出了。

更具排除,报错原因是因为在部署ES的时候,因为ES是Java实现的,所以在启动ES时,需要为es指定jvm内存参数,黑马程序员的教程中,为ES指定的内存是512m。

我的服务器内存是2g,按道理应该能有住够的空间运行es,但其实在运行docker容器时,linux系统为docker分配的空间其实没有512m,但在docker容器内部却要为内部的es分配512的内存,导致内存不足,参数OOM(out of mereny)c错误。

解决方法:在启动ES容器时,为容器指定参数-m 1000m,手动为docker容器分配足够的内存。

或者部署到一条内存打一点的服务器也可以。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

i进击的攻城狮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值