更新ElasticSearch docker容器Mac主机的max_map_count

Ale*_*akh 20 containers elasticsearch docker docker-container

我使用这个容器开始elasticsearchdocker.按照手册我必须更新max_map_count以启动容器

sudo sysctl -w vm.max_map_count = 262144

但是..我可以在我的主机(容器)中更新它在我启动它之后我无法启动它.难道我做错了什么?

错误:引导程序检查失败的最大虚拟内存区域vm.max_map_count [65530]可能太低,增加到至少[262144]

如果我尝试在我的主机(Mac)上执行此操作,则会出现以下错误.

sysctl:unknown oid'vm.max_map_count'

Docker引擎安装所有容器正在运行的Lunix VM.因此,应该为Linux主机执行增加限制的命令,而不是Mac.

如何通过Docker引擎安装的终端访问Linux VM?

小智 38

在Docker工具箱上

如果你在docker工具箱中尝试终端的docker客户端,然后进行配置:

docker-machine ssh
sudo sysctl -w vm.max_map_count=262144
exit
Run Code Online (Sandbox Code Playgroud)

在Docker For Mac上:

必须在xhyve虚拟机中设置vm_max_map_count设置:

$ screen ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/tty
Run Code Online (Sandbox Code Playgroud)

如果它要求您输入用户名和密码使用root登录并且没有密码.

如果它只有一个空白屏幕,请按RETURN.

然后像配置Linux一样配置sysctl设置:

sysctl -w vm.max_map_count=262144
Run Code Online (Sandbox Code Playgroud)

通过Control-A Control- \退出.

这里查看文档.

坚持

在某些情况下,此更改不会在重新启动VM时持续存在.因此,在screen进入时,编辑文件/etc/sysctl.d/00-alpine.conf并将参数添加vm.max_map_count=262144到文件末尾.

  • @Ragnar运行`find〜/ Library / Containers / com.docker.docker / Data / -name'tty'`。我的位置在High Sierra 10.13.6上的〜/ Library / Containers / com.docker.docker / Data / vms / 0 / tty中。 (4认同)
  • 当我点击`screen〜/ Library / Containers / com.docker.docker / Data / com.docker.driver.amd64-linux / tty`时,我没有这样的文件或目录。 (3认同)
  • 只是为了完成:请注意,此更改发生在主机操作系统上,而不是在容器内。容器与主机操作系统共享相同的内核,因此它正在工作。在 OSX 上,“docker 主机操作系统”是一个由 docker-machine cli 包装的虚拟机。 (2认同)

Cha*_*ith 17

在最新的Docker for Mac(版本18.06.0-ce-mac70)上:

$ screen ~/Library/Containers/com.docker.docker/Data/vms/0/tty
Run Code Online (Sandbox Code Playgroud)

在空白屏幕上,按RETURN.

然后像配置Linux一样配置sysctl设置:

sysctl -w vm.max_map_count=262144
Run Code Online (Sandbox Code Playgroud)

通过Control-A Control退出 - \


Fab*_*ino 8

要使其与 Mac Sonoma 14.0 + Docker Desktop 25.0 配合使用,请按照以下步骤操作:

  • 在“设置”->“常规”中启用“在 Apple Silicon 上使用 Rosetta 进行 x86/amd64 模拟”
  • 在“设置”->“开发中的功能”->“实验功能”中禁用访问实验功能
  • 运行以下命令(请参阅https://github.com/docker/for-mac/issues/4822

docker run -it --privileged --pid=host debian nsenter -t 1 -m -u -n -i sh

/ # sysctl -w vm.max_map_count=262144

vm.max_map_count = 262144

  • 只有一种可行的解决方案 MAC Ventura 13.6 Docker Desktop 4.25.0 (2认同)