Windows docker中的ElasticSearch图像vm max map coun

时间:2017-02-08 11:13:12

标签: elasticsearch docker docker-compose

我是Docker和弹性搜索的新手。 我正在使用Windows 7机器。我正在使用docker-compose来启动docker。我的yml文件有   elasticsearch:     image:elasticsearch:5.1.1     环境:       ES_JAVA_OPTS:“ - Xms1g -Xmx1g”

以及其他链接图片。 我正在使用docker调出弹性图像,在此期间我收到以下错误

[36melasticsearch_1   |←[0m ERROR: bootstrap checks failed
[36melasticsearch_1   |←[0m max virtual memory areas vm.max_map_count [65530] i

太低,至少增加[262144]     [36melasticsearch_1 |←[0m [2017-02-08T11:06:51,752] [INFO] [o.e.n.Node

我搜索了解决方案以及建议使用的所有地方 sudo sysctl vm.max_map_count=262144

但在Windows中,sysctl不存在。 窗口没有明确的步骤。

我的机器中出现了另一个泊坞窗图像,因此泊坞机正在我的机器上工作。

有人可以提供解决此问题的线索吗?

8 个答案:

答案 0 :(得分:11)

当前,在this issue之后,通过wsl -d docker-desktopsysctl -w vm.max_map_count=262144使其生效。

有人用echo "vm.max_map_count = 262144" > /etc/sysctl.d/99-docker-desktop.confecho -e "\nvm.max_map_count = 262144\n" >> /etc/sysctl.d/00-alpine.conf使它持续工作,但这些都不对我有用。

答案 1 :(得分:7)

我已经在这个问题上停留了几个月,解决方法是在cmd.exe as stated in the official Elasticsearch documentation上启动以下命令:

0

您已经准备好开始Elasticsearch!

答案 2 :(得分:4)

您可以使用以下命令设置vm.max_map_count:

docker-machine ssh

sudo sysctl -w vm.max_map_count=262144

答案 3 :(得分:2)

Elasticsearch 对此进行了修复。

这在 Win 10 Pro Version 10.0.19042.685、Docker Engine v20.10.0 Using ES 7.10 上对我有用

问题出在主机 linux 机器 (WSL2) 上,而不是容器上。

请参阅带有 Docker 桌面 WSL 2 后端的 Windows 部分 https://www.elastic.co/guide/en/elasticsearch/reference/current/docker.html#_set_vm_max_map_count_to_at_least_262144

-d 发行版(例如不是 ubuntu)

wsl -d docker-desktop
sysctl -w vm.max_map_count=262144

之后我的 3 节点集群 docker-compose 成功启动。

答案 4 :(得分:0)

您在正常模式或生产模式下启动Elasticsearch,从版本5开始包含引导程序检查,如果它们失败,Elasticsearch将无法启动。

https://www.elastic.co/guide/en/elasticsearch/reference/current/bootstrap-checks.html

但是,您可以在Windows上运行开发模式,该模式仅解析为警告。试着运行弹性图像。

docker run -p 9200:9200 -e "http.host=0.0.0.0" \
 -e "transport.host=127.0.0.1" \
 docker.elastic.co/elasticsearch/elasticsearch:5.2.0

https://www.elastic.co/guide/en/elasticsearch/reference/current/docker.html

答案 5 :(得分:0)

由于我是这个Docker的新手,我对基础知识感到困惑。我现在找到了解决问题的方法。 在Windows中安装的docker中,创建了一个Oracle VM Linux框。我打开了那个,然后在那里我添加了sudo sysctl vm.max_map_count=262144,之后问题就解决了。

答案 6 :(得分:0)

Elasticsearch要求变量262144的最小值vm.max_map_count

在linux中,显示变量值:

sysctl --values vm.max_map_count

更改变量值:

sudo sysctl --w vm.max_map_count=262144

Elastisearch guide

了解更多信息

答案 7 :(得分:0)

无意中为 wsl2 用户找到了更简单的解决方案,只需在默认的 wsl2 分发 shell 中运行以下命令

sudo sysctl -w vm.max_map_count=262144

例如:

enter image description here