小编典典

用于Elasticsearch 7.0.1和Kibana 7.0.1的docker-compose.yml

elasticsearch

我在Windows 10上将Docker Desktop与linux容器一起使用,并想通过docker
compose文件启动最新版本的elasticsearch和kibana容器。

使用某些旧版本(如6.2.4)时,一切正常。

这是6.2.4的工作docker-compose.yml文件。

version: '3.1'

services:

  elasticsearch:
   image: docker.elastic.co/elasticsearch/elasticsearch:6.2.4
   container_name: elasticsearch
   ports:
    - "9200:9200"
   volumes:
    - elasticsearch-data:/usr/share/elasticsearch/data
   networks:
    - docker-network

  kibana:
   image: docker.elastic.co/kibana/kibana:6.2.4
   container_name: kibana
   ports:
    - "5601:5601"
   depends_on:
    - elasticsearch
   networks:
    - docker-network

networks:
  docker-network:
    driver: bridge

volumes:
  elasticsearch-data:

我删除了所有已安装的Docker容器,并通过将6.2.4更改为7.0.1修改了docker-
compose.yml文件。通过启动新的compose文件,一切看起来都很好,即可启动elasticsearch和kibana容器。但是几秒钟后,elasticsearch容器退出了(kibana容器正在运行)。我重新启动了所有程序,将终端连接到elasticsearch容器,并看到以下错误消息:

...
ERROR: [1] bootstrap checks failed
[1]: the default discovery settings are unsuitable for production use; at least one of [discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes] must be configured
...

为了使Elasticsearch 7.0.1正常工作,必须在docker-compose.yml文件中进行哪些更改?


阅读 440

收藏
2020-06-22

共1个答案

小编典典

进行一些更改对我有用-

  • cluster.initial_master_nodes在compose中添加到elasticsearch服务中-

    environment:
    
    • cluster.initial_master_nodes=elasticsearch
  • vm.max_map_count 在Linux机器上,内核设置至少需要设置为262144-

    $ sudo sysctl -w vm.max_map_count=262144
    

对于开发模式,您还可以使用以下设置-

    environment:
      - discovery.type=single-node

正在为我撰写文件-

version: '2.2'
services:
  es01:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.0.1
    container_name: es01
    environment:
      - cluster.initial_master_nodes=es01
    ulimits:
      memlock:
        soft: -1
        hard: -1
    ports:
      - 9200

对于生产模式,您必须考虑按照官方文档中的建议具有多个ES节点/容器

https://www.elastic.co/guide/zh-
CN/elasticsearch/reference/7.0/docker.html#docker-cli-run-prod-
mode

2020-06-22