如何在免费AWS实例中绕过Elasticsearch docker的硬盘内存需求

问题描述 投票:0回答:1

我正在使用AWS免费套餐,在此之下,我可以运行具有1 GB RAM的t2.micro实例。现在,我通过按this official ES guide作为Elastic容器运行Elasticsearch。

我正在使用Dockerfile,其内容如下:

FROM docker.elastic.co/elasticsearch/elasticsearch:7.5.1

运行/ usr / share / elasticsearch / bin / elasticsearch-plugin install --batch发现-ec2

EXPOSE 9200 9300

现在,当我尝试运行它时,出现以下错误并退出。

线程“主”中的异常java.lang.RuntimeException:启动Java失败,显示1输出:#

没有足够的内存来使Java Runtime Environment继续。

本机内存分配(mmap)无法映射986513408字节以提交保留的内存。

我经历了this official ES以转到错误消息中提到的mmap设置,但这需要更改elasticsearch.yml由于我是Docker的新手,所以我不知道如何修改适用于容器的elasticsearch.yml或是否有另一种方法来修改此设置?

amazon-web-services docker elasticsearch
1个回答
0
投票

在搜索并浏览了互联网上的多个文档后,找到了解决方案。

我可以使用pass设置来减少docker命令本身中的docker容器所需的最小和最大JVM:

docker run -d -e ES_JAVA_OPTS="-Xms256m -Xmx512m" -ti -v /usr/share/elasticsearch/data elasticsearch-custom

注意,我将最小减小为256 MB,将最大减小为512,现在我可以启动泊坞窗了。

© www.soinside.com 2019 - 2024. All rights reserved.