场景
windows使用WLS2作为docker的虚拟子系统,然后启动docker的elasticsearch的集群时出现max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
对我无效解决方法
参考:https://blog.youkuaiyun.com/Nicolege678/article/details/125280585
https://blog.youkuaiyun.com/weixin_42170236/article/details/113698846
https://blog.youkuaiyun.com/sinat_36053757/article/details/125609762
https://blog.youkuaiyun.com/lsqtzj/article/details/119960484
有效解决方法
上述的无效方法其实主要是这两句命令:
wsl -d docker-desktop
sysctl -w vm.max_map_count=262144
然后出现
sysctl -w vm.max_map_count=262144
sysctl : 无法将“sysctl”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径
正确,然后再试一次。
所在位置 行:1 字符: 1
+ sysctl -w vm.max_map_count=262144
+ ~~~~~~
+ CategoryInfo : ObjectNotFound: (sysctl:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
很明显不识别sysctl这个命令,因为sysctl是linux的命令。
解决办法命令
wsl --list
查看wsl有什么虚拟子系统:
切换子系统
wsl -d Ubuntu-18.04
然后就可以参考其他博文进行修改了
在
sudo vi /etc/sysctl.conf
文件最后添加一行
vm.max_map_count=262144
加载设置好的系统参数
sysctl [-n] [-e] -p <filename> (default /etc/sysctl.conf)
sudo sysctl -p
然后查看输出 看看是不是262144了
sysctl vm.max_map_count
如果成功
重启docker或者直接重启windows电脑即可