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
相关推荐
Sst的头号粉丝40 分钟前
Kubernetes——介绍
云原生·容器·kubernetes
大傻^41 分钟前
Spring AI Alibaba 向量数据库集成:Milvus与Elasticsearch配置详解
数据库·人工智能·spring·elasticsearch·milvus·springai·springaialibaba
木二_1 小时前
057.Kubernetes cert-manager ACME方案介绍
云原生·容器·kubernetes·证书·cert-manager·证书管理
H_老邪2 小时前
Elasticsearch 本地安装配置
大数据·elasticsearch·搜索引擎
危笑ioi2 小时前
基于Kubeconfig实现K8s节点免密登录
云原生·容器·kubernetes
木二_2 小时前
058.Kubernetes cert-manager 申请证书及ingress注解介绍
云原生·容器·kubernetes·cert-manager·证书管理
kabu_Charlie2 小时前
使用Docker运行python程序
运维·docker·容器
殷紫川2 小时前
Elasticsearch 核心命脉:倒排索引、分片机制与全链路高性能调优实战
elasticsearch·架构
包饭厅咸鱼2 小时前
小龙虾openclaw----Windows+Wsl+Docker 安装openclaw 并接入飞书
windows·docker·openclaw·小龙虾
骥龙3 小时前
第五篇:运行时安全——Docker沙箱与命令审批机制
安全·docker·容器