max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
最后的解决方式是:
利用一个特权容器(privileged container)并挂载宿主的 PID namespace,就可以在宿主 VM 上运行 `sysctl`:
- `--privileged` 让容器拥有足够权限。
- `--pid=host` 让容器内能访问到宿主(VM)的进程空间。
docker run --rm --privileged --pid=host busybox \
sysctl -w vm.max_map_count=262144
找了几种方法: 修改宿主机、但我没这个文件
screen ~/Library/Containers/com.docker.docker/Data/vms/0/tty
sudo sysctl -w vm.max_map_count=262144
修改当前登陆用户下的docker daemon 配置 添加如下、结果 Docker Desktop 直接打不开了。
{ "sysctls": { "vm.max_map_count": 262144 } }