我有“vm.max_map_count [65530] is too low,increase to at least [262144]”错误,而弹性容器在Docker 4.25,MacOS 14和ARM核心上启动。
以下是我的容器 prop :
image: elasticsearch:8.9.0
container_name: elasticsearch
hostname: elastic
environment:
- node.name=elasticsearch
- cluster.name=es-docker-cluster
- cluster.initial_master_nodes=elasticsearch
- bootstrap.memory_lock=true
- 'ES_JAVA_OPTS=-Xms512m -Xmx512m'
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- es-data:/usr/share/elasticsearch/data
ports:
- ${DC_ELASTIC_HOST_PORT}:${DC_ELASTIC_PORT}
字符串
我已经尝试了这里描述的步骤:Install Elasticsearch with Docker但它没有帮助。
命令docker-machine ssh
通过Error: No machine name(s) specified and no "default" machine exists
失败。似乎必须创建虚拟机,但它需要仅在Intel Core Mac上运行的VirtualBox。
命令screen ~/Library/Containers/com.docker.docker/Data/vms/0/tty
失败,因为找不到路径。
命令sudo sysctl -w vm.max_map_count=262144
也会因sysctl: unknown oid 'vm.max_map_count'
错误而失败。
可能有人知道其他的解决办法?
2条答案
按热度按时间n53p2ov01#
可悲的是,现在唯一可能的是降级回4242(https://docs.docker.com/desktop/release-notes/#4242)的MacOS。
我不知道它是否与Rosetta实现有关;尝试为Rosetta进行软件更新(https://docs.docker.com/desktop/install/mac-install/#system-requirements),看看是否有帮助。
这不是现在的答案,但它是一个临时的工作。
jgwigjjp2#
具体来说,Elasticsearch需要将
vm.max_map_count
设置至少设置为262144
。在macOS上,Docker Desktop运行的是一个虚拟化的Linux环境,Elasticsearch容器实际上在其中运行。在此环境中调整vm.max_map_count
等设置可能具有挑战性,因为它不像在原生Linux主机上那样简单。~/Library/Group Containers/group.com.docker/settings.json
找到此文件。使用文本编辑器打开此文件。settings.json
文件中,查找"linuxVmSettings"
或类似的部分,您可能需要添加或修改vm.max_map_count
的条目。如果没有,您可以尝试添加如下内容:字符串
保存对
settings.json
的更改,并再次启动Docker Desktop。