更新ElasticSearch docker容器Mac主机的max_map_count

9vw9lbht  于 2023-06-21  发布在  ElasticSearch
关注(0)|答案(8)|浏览(100)

我使用this容器在docker中启动elasticsearch。根据manual,我必须更新max_map_count以启动容器
sudo sysctl -w vm.max_map_count=262144
但是..我可以在我的主机(容器)更新它后,我启动它,而我无法启动它。我做错什么了吗?
错误:引导检查失败最大虚拟内存区域vm.max_map_count [65530]可能太低,至少增加到[262144]
如果我尝试在我的主机(即Mac)上执行此操作,我会得到以下错误。
sysctl:未知的oid 'vm.max_map_count'
Docker引擎安装Lunix VM,所有容器都在其中运行。因此,增加限制的命令应该针对Linux主机执行,而不是针对Mac。
如何通过Docker引擎安装的终端访问Linux VM?

yhuiod9q

yhuiod9q1#

Docker工具箱

如果你在docker toolbox中,尝试从终端运行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登录,无需密码。
如果它只是一个空白屏幕,按回车键。
然后像在Linux中一样配置sysctl设置:

sysctl -w vm.max_map_count=262144

通过Control-A Control-\退出。
把文件拿来。

持久化

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

vdzxcuhz

vdzxcuhz2#

Mac版Docker最新版本(18.06.0-ce-mac 70):

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

在空白屏幕上,按RETURN。
然后像在Linux中一样配置sysctl设置:

sysctl -w vm.max_map_count=262144

通过Control-A Control-\退出

k2arahey

k2arahey3#

对于那些在windows 10上使用Docker Desktop的用户,您必须执行:
sysctl -w vm.max_map_count=262144之前的命令行中的wsl -d docker-desktop

r7knjye2

r7knjye24#

对于那些在Mac上使用Docker Desktop的人来说,你可以通过以下步骤轻松增加内存:
1.点击docker桌面-> preferences...
1.导航到“资源”
1.将内存更改为您需要的任何内存
1.单击“应用并重新设置”

6ss1mwsb

6ss1mwsb5#

文件夹已移动,这是新位置-
$screen ~/Library/Containers/com.docker.docker/Data/vms/0/tty
然后
sysctl -w vm.max_map_count=262144

vsaztqbk

vsaztqbk6#

对于mac用户,您可能会在连接到Docker VM时遇到问题,因此您应该运行此命令以进入Docker VM的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

szqfcxe2

szqfcxe27#

Podman Desktop for Mac OS

对于我们这些在Podman Desktop上遇到同样问题的人来说,我们必须更新Podman运行的虚拟机的设置,以便在Mac上运行容器。

步骤...

登录Podman虚拟机

从Mac上的终端:

$ podman machine ssh

编辑默认/etc/sysctl.conf文件

使用sudo编辑/etc/sysctl.conf并添加vm.max_map_count = 262144属性。

$ sudo echo "vm.max_map_count = 262144" | sudo tee /etc/sysctl.conf

退出podman虚拟机后,您应该能够运行ElasticSearch容器:

$ podman run --name es01 --net elastic -p 9200:9200 -it docker.elastic.co/elasticsearch/elasticsearch:8.8.0

然后我会建议停止Podman桌面并重新启动您的Mac。然后重新启动Podman Desktop并尝试再次运行ElasticSearch容器。应该能用

4si2a6ki

4si2a6ki8#

如果你已经从docker's Mac installer安装了Docker,那么你将安装Docker桌面(还包括Docker Engine,Docker CLI客户端,Docker Compose,Notary,Kubernetes和Credential Helper。
这是Docker桌面在2021年的样子,您可以更改内存/交换或任何其他资源。

第一步-点击docker的首选项,如下图所示。

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

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

相关问题