当我使用docker-compose(CentOS 7.6 Mac OS(安装Elasticsearch时,运行命令'docker-compose up
'时,它会抛出此错误' efk_elasticsearch_1 exited with code 78
',这是我的docker-compose.yml:
version: '2'
services:
elasticsearch:
image: elasticsearch:7.2.0
expose:
- 9200
ports:
- "9200:9200"
您需要在HOST
终端中运行此操作,而不是容器:
sudo sysctl -w vm.max_map_count=262144
如果您检查了容器日志,您会看到类似的东西:
max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
请注意,在重新启动计算机后,将重置上述命令,您需要在/etc/sysctl.conf
中设置值以使其允许。
请参阅此
使用生产中的docker映像或local
在生产中运行Docker的Elasticsearch时,适用以下要求和建议。
设置vm.max_map_count至少262144vm.max_map_count内核设置必须设置为至少262144以进行生产。
如何设置vm.max_map_count取决于您的平台。
linux
要查看vm.max_map_count设置的当前值,运行:
grep vm.max_map_count /etc/sysctl.conf
vm.max_map_count=262144
要在实时系统上应用设置,请运行:
sysctl -w vm.max_map_count=262144
要永久更改vm.max_map_count设置的值,请在/etc/sysctl.conf中更新值。
MacOS with docker用于Mac
必须在Xhyve虚拟机中设置VM.MAX_MAP_COUNT设置:
从命令行,运行:
屏幕〜/library/containers/com.docker.docker/data/vms/0/tty按Enter并使用sysctl配置VM.MAX_MAP_COUNT:
sysctl -w vm.max_map_count=262144
要退出屏幕会话,键入ctrl a d。
Windows和Macos带有Docker
必须通过Docker-Machine设置VM.MAX_MAP_COUNT设置:
docker-machine ssh
sudo sysctl -w vm.max_map_count=262144
**带Docker桌面WSL的Windows 2 **
必须在docker-desktop容器中设置vm.max_map_count设置:
wsl -d docker-desktop
sysctl -w vm.max_map_count=262144
这为我做到了:
wsl -d docker-desktop
sysctl -w vm.max_map_count=262144
PowerShell&WSL 1