问题:
基于wsl2 docker启动elasticsearch时,会报
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可以正常启动。
wsl -d docker-desktop
sysctl -w vm.max_map_count=262144
但是,以上修改只在当前会话有效,重启 Windows 和 WSL 都要重新设置
方案二:
根据docker for win issue:vm.max_map_count in docker-desktop distro for WSL2
有以下解决方案:
wsl -d docker-desktop
echo 262144 >> /proc/sys/vm/max_map_count
有人执行以上命令后,docker重启或系统重启依然有用,但是我自己实验后重启无效。
方案三:
根据Using Docker-Desktop for Windows, how can sysctl parameters be configured to permeate a reboot? 的回答,添加wsl .wslconfig文件,使wsl每次启动都执行命令。
在你的windows %userprofile%
目录(通常是C:\Users\<你的用户名>
)中创建或编辑.wslconfig
文件,加入如下命令
[wsl2]
kernelCommandLine = "sysctl.vm.max_map_count=262144"
然后,重启你的docker,尝试在cmd中输入以下命令,查看max_map_count是否已经变为262144文章来源:https://www.toymoban.com/news/detail-408334.html
wsl -d docker-desktop
sysctl vm.max_map_count
.wslconfig的其他配置参考Advanced settings configuration in WSL文章来源地址https://www.toymoban.com/news/detail-408334.html
参考资料
- https://www.elastic.co/guide/en/elasticsearch/reference/current/docker.html
- https://github.com/docker/for-win/issues/5202
- https://stackoverflow.com/questions/69214301/using-docker-desktop-for-windows-how-can-sysctl-parameters-be-configured-to-per
- https://docs.microsoft.com/en-us/windows/wsl/wsl-config#configure-global-options-with-wslconfig
到了这里,关于wsl docker 启动elasticsearch vm.max_map_count [65530] is too low问题永久解决方案的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!