为 ElasticSearch docker 容器 Mac 主机更新 max_map_count
Update max_map_count for ElasticSearch docker container Mac host
我正在使用 this container to start elasticsearch
in docker
. In accordance with the manual 我必须更新 max_map_count
才能启动容器
sudo sysctl -w vm.max_map_count=262144
但是..我可以在我启动它之后在我的主机(容器)中更新它,而我无法启动它。我做错了什么吗?
ERROR: bootstrap checks failed max virtual memory areas
vm.max_map_count [65530] likely too low, increase to at least [262144]
如果我尝试在我的主机(Mac)上执行此操作,我会收到以下错误。
sysctl: unknown oid 'vm.max_map_count'
Docker 引擎安装 Lunix VM,其中所有容器都是 运行。所以增加限制的命令应该针对 Linux 主机执行,而不是针对 Mac.
如何通过 Docker 引擎安装的终端访问 Linux 虚拟机?
在 Docker 工具箱上
如果您在 docker 工具箱中,请从终端尝试 docker 客户端,然后进行配置:
docker-machine ssh
sudo sysctl -w vm.max_map_count=262144
exit
在 Docker 对于 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
添加到文件末尾。
最新 Docker 对于 Mac(版本 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 Control-\
退出
文件夹已移动,这是新位置 -
$screen ~/Library/Containers/com.docker.docker/Data/vms/0/tty
然后
sysctl -w vm.max_map_count=262144
对于在 windows 10 上使用 Docker Desktop
的用户,您必须执行:
在sysctl -w vm.max_map_count=262144
之前的命令行中wsl -d docker-desktop
在mac上使用docker桌面的用户可以通过以下步骤轻松增加内存:
- 单击 docker 桌面 -> 首选项...
- 导航到 'Resources'
- 将内存更改为您需要的任何内容
- 点击'Apply & Restard'
如果您从 docker's Mac installer 安装了 Docker,那么您将安装 Docker 桌面(还包括 Docker 引擎、Docker CLI 客户端、 Docker Compose、Notary、Kubernetes 和 Credential Helper。)
这是 Docker 桌面在 2021 年的样子,您可以在其中更改 memory/swap 或任何其他资源。
第 1 步 - 单击 docker 的首选项,如下所示。
第 2 步 - 单击资源选项卡,您可以在此处调整资源,最后单击“应用并重新启动”按钮。
请忽略我所做的配置。您可以根据自己的需要进行设置。
对于 mac 用户,您可能无法连接到 docker 虚拟机,因此您应该 运行 此命令输入 [=17= 的 shell ] 虚拟机:
docker run -it --privileged --pid=host debian nsenter -t 1 -m -u -n -i sh
GitHub 问题描述:https://github.com/docker/for-mac/issues/4822
我正在使用 this container to start elasticsearch
in docker
. In accordance with the manual 我必须更新 max_map_count
才能启动容器
sudo sysctl -w vm.max_map_count=262144
但是..我可以在我启动它之后在我的主机(容器)中更新它,而我无法启动它。我做错了什么吗?
ERROR: bootstrap checks failed max virtual memory areas vm.max_map_count [65530] likely too low, increase to at least [262144]
如果我尝试在我的主机(Mac)上执行此操作,我会收到以下错误。
sysctl: unknown oid 'vm.max_map_count'
Docker 引擎安装 Lunix VM,其中所有容器都是 运行。所以增加限制的命令应该针对 Linux 主机执行,而不是针对 Mac.
如何通过 Docker 引擎安装的终端访问 Linux 虚拟机?
在 Docker 工具箱上
如果您在 docker 工具箱中,请从终端尝试 docker 客户端,然后进行配置:
docker-machine ssh
sudo sysctl -w vm.max_map_count=262144
exit
在 Docker 对于 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
添加到文件末尾。
最新 Docker 对于 Mac(版本 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 Control-\
退出文件夹已移动,这是新位置 -
$screen ~/Library/Containers/com.docker.docker/Data/vms/0/tty
然后
sysctl -w vm.max_map_count=262144
对于在 windows 10 上使用 Docker Desktop
的用户,您必须执行:
sysctl -w vm.max_map_count=262144
之前的命令行中wsl -d docker-desktop
在mac上使用docker桌面的用户可以通过以下步骤轻松增加内存:
- 单击 docker 桌面 -> 首选项...
- 导航到 'Resources'
- 将内存更改为您需要的任何内容
- 点击'Apply & Restard'
如果您从 docker's Mac installer 安装了 Docker,那么您将安装 Docker 桌面(还包括 Docker 引擎、Docker CLI 客户端、 Docker Compose、Notary、Kubernetes 和 Credential Helper。)
这是 Docker 桌面在 2021 年的样子,您可以在其中更改 memory/swap 或任何其他资源。
第 1 步 - 单击 docker 的首选项,如下所示。
第 2 步 - 单击资源选项卡,您可以在此处调整资源,最后单击“应用并重新启动”按钮。
请忽略我所做的配置。您可以根据自己的需要进行设置。
对于 mac 用户,您可能无法连接到 docker 虚拟机,因此您应该 运行 此命令输入 [=17= 的 shell ] 虚拟机:
docker run -it --privileged --pid=host debian nsenter -t 1 -m -u -n -i sh
GitHub 问题描述:https://github.com/docker/for-mac/issues/4822