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
相关推荐
Elasticsearch5 小时前
什么是混合搜索?
elasticsearch
猫吃了源码5 小时前
k9s简介和安装
linux·docker·kubernetes
云原生指北6 小时前
Docker Sandboxes 上手:从安装到第一次跑 Agent
运维·docker·容器
ziyun6668887 小时前
Docker 容器化 Web 服务架构搭建与自动化运维项目
运维·docker·架构
heimeiyingwang8 小时前
【架构实战】Kubernetes故障排查全景图:从Pod异常到集群雪崩的诊断手册
容器·架构·kubernetes
骇客野人9 小时前
Docker Compose 部署多个独立 Jar 服务完整实操步骤
docker·容器·jar
AAA@峥9 小时前
K8s 资源管控:ResourceQuota 与 LimitRange 机制详解与实战
云原生·容器·kubernetes
daoihfoaf9 小时前
太原助听器品质甄选
容器
Elasticsearch10 小时前
从点击流中提升搜索相关性:使用 Learn To Rank 和 OpenTelemetry 行为信号
elasticsearch
云川之下11 小时前
【k8s】Docker inspect 命令
docker·容器·kubernetes