【问题标题】:docker-compose ERROR: bootstrap checks failed | max > virtual memory areas vm.max_map_count [65530] is too low, increase to > at least [262144]docker-compose 错误:引导检查失败 | max > virtual memory area vm.max_map_count [65530] 太低,增加到 > 至少 [262144]
【发布时间】:2020-01-19 17:24:37
【问题描述】:

我收到此错误:

es01 | {“类型”:“服务器”,“时间戳”: “2019-09-18T17:31:42,267+0000”、“级别”:“信息”、“组件”: “o.e.n.Node”,“cluster.name”:“docker-cluster”,“node.name”:“es01”, "消息": "开始..." } es01 | {“类型”:“服务器”, “时间戳”:“2019-09-18T17:31:42,709+0000”,“级别”:“信息”, “组件”:“o.e.t.TransportService”、“cluster.name”: “docker-cluster”、“node.name”:“es01”、“消息”:“publish_address {172.21.0.3:9300},bound_addresses {0.0.0.0:9300}" } es01 | {“类型”:“服务器”,“时间戳”:“2019-09-18T17:31:42,760+0000”, “级别”:“信息”,“组件”:“o.e.b.BootstrapChecks”,“cluster.name”: “docker-cluster”、“node.name”:“es01”、“message”:“绑定或 发布到非环回地址,执行引导检查”}

重要的错误:

错误:[1] 引导检查失败 es01 | [1]:最大 虚拟内存区域 vm.max_map_count [65530] 太低,增加到 至少 [262144]

然后节点因为上面的错误而停止:

es01 | {“类型”:“服务器”,“时间戳”: “2019-09-18T17:31:42,810+0000”、“级别”:“信息”、“组件”: “o.e.n.Node”,“cluster.name”:“docker-cluster”,“node.name”:“es01”, “消息”:“停止...” } es01 | {“类型”:“服务器”, “时间戳”:“2019-09-18T17:31:42,904+0000”,“级别”:“信息”, “组件”:“o.e.n.Node”,“cluster.name”:“docker-cluster”, “node.name”:“es01”,“消息”:“停止”} es01 | {“类型”: “服务器”、“时间戳”:“2019-09-18T17:31:42,905+0000”、“级别”: “信息”,“组件”:“o.e.n.Node”,“cluster.name”:“docker-cluster”, “node.name”:“es01”,“消息”:“关闭...”} es01 | {“类型”: “服务器”、“时间戳”:“2019-09-18T17:31:42,967+0000”、“级别”: “信息”,“组件”:“o.e.n.Node”,“cluster.name”:“docker-cluster”, “node.name”:“es01”,“消息”:“关闭”} es01 | {“类型”: “服务器”、“时间戳”:“2019-09-18T17:31:42,976+0000”、“级别”: “INFO”、“组件”:“o.e.x.m.p.NativeController”、“cluster.name”: “docker-cluster”、“node.name”:“es01”、“message”:“本机控制器 进程已停止 - 无法启动新的本地进程”}

我的 docker-compose.yml 文件如下:

version: '2.2'
services:
  kibana:
    depends_on:
      - es01
      - es02
    image: docker.elastic.co/kibana/kibana:7.3.1
    container_name: kibana
    ports:
      - 5601:5601
    environment:
      ELASTICSEARCH_HOSTS: http://es01:9200
      ELASTICSEARCH_URL: http://es01:9200
  es01:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.3.1
    container_name: es01
    environment:
      - node.name=es01
      - discovery.seed_hosts=es02
      - cluster.initial_master_nodes=es01,es02
      - cluster.name=docker-cluster
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - esdata01:/usr/share/elasticsearch/data
    ports:
      - 9200:9200
      - 9300:9300
  es02:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.3.1
    container_name: es02
    environment:
      - node.name=es02
      - discovery.seed_hosts=es01
      - cluster.initial_master_nodes=es01,es02
      - cluster.name=docker-cluster
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - esdata02:/usr/share/elasticsearch/data

volumes:
  esdata01:
    driver: local
  esdata02:
    driver: local

有谁知道如何增加集群的内存并修复错误?

【问题讨论】:

标签: docker elasticsearch memory-management docker-compose


【解决方案1】:

看起来解决方案是使用: https://github.com/docker-library/elasticsearch/issues/111

建议在 ubuntu 上运行:

sudo sysctl -w vm.max_map_count=262144

【讨论】:

    【解决方案2】:

    如果你密切关注官方的 Elasticsearch Docker documentation

    你需要设置vm.max_map_count检查这个here

    【讨论】:

    • Mac 的说明不起作用。 screen 给了我Cannot exec '/Users/arielpontes/Library/Containers/com.docker.docker/Data/vms/0/tty': Permission deniedsudo 不起作用。 chmod 777 确实有效,但是当我运行命令时,我的终端窗口会闪烁并且我得到 [screen is terminating]。当我尝试sysctl -w vm.max_map_count=262144 时,我得到sysctl: unknown oid 'vm.max_map_count'
    猜你喜欢
    • 2021-06-01
    • 2018-12-28
    • 2021-08-16
    • 2017-07-19
    • 1970-01-01
    • 2022-08-11
    • 2020-04-11
    • 1970-01-01
    • 2022-06-12
    相关资源
    最近更新 更多