更新ElasticSearch docker容器Mac主机的max_map_count

时间:2016-12-16 21:29:31

标签: elasticsearch docker containers docker-container

我正在使用this容器在elasticsearch中启动docker。根据{{​​3}},我必须更新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?

6 个答案:

答案 0 :(得分:31)

在Docker Toolbox上

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

docker-machine ssh
sudo sysctl -w vm.max_map_count=262144
exit

在Docker For Mac上:

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

$ screen ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/tty

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

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

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

sysctl -w vm.max_map_count=262144

通过Control-A Control退出 - \。

查看文档here

持久性

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

答案 1 :(得分:12)

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

$ screen ~/Library/Containers/com.docker.docker/Data/vms/0/tty

在空白屏幕上,按RETURN。

然后像在Linux中那样配置sysctl设置:

sysctl -w vm.max_map_count=262144

按Control-A Ctrl-\

退出

答案 2 :(得分:1)

对于在Windows 10上使用Docker Desktop的用户,您必须执行:

wsl -d docker-desktop之前的命令行中

sysctl -w vm.max_map_count=262144

答案 3 :(得分:1)

Mac 上使用 docker desktop 的用户,可以通过以下步骤轻松增加内存:

  1. 点击 docker 桌面 -> 首选项...
  2. 导航到“资源”
  3. 将内存更改为您需要的任何内容
  4. 点击“应用并重新开始”

答案 4 :(得分:0)

文件夹已移动,这是新位置-

$ screen〜/ Library / Containers / com.docker.docker / Data / vms / 0 / tty

然后

sysctl -w vm.max_map_count = 262144

答案 5 :(得分:-1)

如果您从 docker's Mac installer 安装了 Docker,那么您将安装 Docker 桌面(还包括包括 Docker 引擎、Docker CLI 客户端、Docker Compose、Notary、Kubernetes 和 Credential Helper。)

这是 2021 年 Docker 桌面的样子,您可以在其中更改内存/交换或任何其他资源。

步骤 1 - 单击 docker 的首选项,如下所示。

enter image description here

第 2 步 - 单击资源选项卡,您可以在此处调整资源,最后单击“应用并重新启动”按钮。

enter image description here

请忽略我所做的配置。您可以根据需要进行设置。