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
相关推荐
虎头金猫3 天前
4K 视频总卡在公网带宽?用 N1 + OpenList 把网盘播放链路重新理顺
运维·服务器·网络·python·容器·beautifulsoup·pandas
分布式存储与RustFS3 天前
MinIO 官方 Docker 镜像被移除:依赖它的项目该怎么办
docker·云原生·devops·对象存储·minio·分布式存储
玉&心3 天前
通过Arthas在线诊断K8S中的内存及JVM等使用情况
docker·k8s·arthas
xing-xing3 天前
Docker容器中Nginx站点根目录网页配置访问
nginx·docker
赵文宇(温玉)3 天前
CoreDNS的hosts插件的缺行配置导致k8s集群异常
容器·kubernetes·rancher
guo_wen_qiang3 天前
上传本地镜像到harbor中
docker·容器·持续部署
Elasticsearch3 天前
Elastic Observability 的跨项目搜索:通过一个查询搜索所有关联项目
elasticsearch
羑悻的小杀马特3 天前
Dockerfile 全景指南:从入门编写dockerfile到生产环境镜像优化实战,一步步带你从啃透制作指令到镜像制作落地!
docker·dockerfile·镜像制作
BianHuanShiZhe3 天前
docker常见命令
docker
Elasticsearch3 天前
Elasticsearch 中的 agentic 工作流:暂停 AI agent 等待人工审批,72 小时后恢复
elasticsearch