wsl-docker环境下启动ES报错vm.max_map_count [65530] is too low

问题描述

在windows环境下用Docker Desktop(wsl docker)启动 elasticsearch时报错

bash 复制代码
max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

解决方案

方案一

默认的vm.max_map_count值是65530,而es需要至少262144

根据 elasticsearch官方文档 的解决方案,执行以下命令后,es可以正常启动。

bash 复制代码
wsl -d docker-desktop
sysctl -w vm.max_map_count=262144

但是,以上修改只在当前会话有效,重启 Windows 和 WSL 都要重新设置

方案二

根据docker官方给出的解决办法,我尝试后,docker重启或系统重启就失效了

bash 复制代码
wsl -d docker-desktop
echo 262144 >> /proc/sys/vm/max_map_count

方案三

根据Using Docker-Desktop for Windows, how can sysctl parameters be configured to permeate a reboot? 的回答,添加wsl .wslconfig文件,使wsl每次启动都执行命令。

在你的windows %userprofile% 目录(通常是C:\Users<你的用户名>)中创建或编辑.wslconfig文件,加入如下命令

bash 复制代码
[wsl2]
kernelCommandLine = "sysctl.vm.max_map_count=262144"

然后,重启你的docker,尝试在cmd中输入以下命令,查看max_map_count是否已经变为262144

bash 复制代码
wsl -d docker-desktop
sysctl vm.max_map_count
相关推荐
Patrick_Wilson2 小时前
从「改个端口」到 502:Next.js on k8s 的容器端口、Service 映射与 env 覆盖
docker·kubernetes·next.js
Suroy11 小时前
DockerView-Go:用 Go 写一个终端 Docker 监控工具,顺便做了个 Web 仪表盘
docker
云恒要逆袭12 小时前
运行你的第一个Docker容器
后端·docker·容器
宋均浩1 天前
# Docker 镜像瘦身实战:从 1.2G 到 80MB 的五个优化步骤
ci/cd·docker
程序员老赵2 天前
10 分钟部署 OpenCode:Docker 一键安装,浏览器打开就能用 AI 写代码(附完整命令与排错)
docker·容器·ai编程
Elasticsearch2 天前
Kibana 中的 SNMP 拓扑数据:从采集到 Canvas
elasticsearch
WangMingHua1112 天前
LM Studio Docker 部署——本地大模型一键启动
docker
曲幽3 天前
别再用网页翻译看源码了!你的私人翻译神器LibreTranslate,部署避坑指南来了
python·docker·web·pot·translate·libretranslate·arogstranslate
Elasticsearch4 天前
3个信号、2个环境变量、0个采集器:使用 Python 和 Elastic 的托管 OTLP 端点实现 OpenTelemetry
elasticsearch