Docer启动ElasticSearch报错

  • 报错信息
ERROR: [1] bootstrap checks failed
[1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
[2019-07-27T01:13:57,788][INFO ][o.e.n.Node               ] [92PS5zg] stopping ...
[2019-07-27T01:13:57,819][INFO ][o.e.n.Node               ] [92PS5zg] stopped
[2019-07-27T01:13:57,819][INFO ][o.e.n.Node               ] [92PS5zg] closing ...
[2019-07-27T01:13:57,873][INFO ][o.e.n.Node               ] [92PS5zg] closed

  • 解决办法

在宿主机执行

sysctl -w vm.max_map_count=262144
  • 原因分析:

vm.max_map_count参数,是允许一个进程在VMAs拥有最大数量(VMA:虚拟内存地址, 一个连续的虚拟地址空间),当进程占用内存超过时, 直接OOM。

elasticsearch占用内存较高。官方要求max_map_count需要配置到最小262144。

max_map_count配置文件写在系统的/proc/sys/vm中

通过docker inspect命令, 可查看docker使用宿主机的/proc/sys作为只读路径之一

     "ReadonlyPaths": [
                "/proc/bus",
                "/proc/fs",
                "/proc/irq",
                "/proc/sys",
                "/proc/sysrq-trigger"
            ]

说明镜像使用宿主机的max_map_count参数。因此直接修改宿主机的max_map_count参数即可

  • 重启ElasticSearch容器
    Docer启动ElasticSearch报错_第1张图片

参考:官方文档

你可能感兴趣的:(Docer启动ElasticSearch报错)