docker-compose.yml для эластичного поиска 7.0.1 и кибана 7.0.1 - PullRequest
0 голосов
/ 02 мая 2019

Я использую Docker Desktop с контейнерами linux в Windows 10 и хотел бы запустить последние версии контейнеров эластичного поиска и kibana поверх файла составления докера.

Все отлично работает при использовании более старой версии, такой как 6.2.4.

Это рабочий файл docker-compose.yml для 6.2.4.

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 и адаптировал файл docker-compose.yml, изменив 6.2.4 на 7.0.1. При запуске нового файла compose все выглядит хорошо, запускаются контейнеры эластичного поиска и kibana. Но через пару секунд контейнер упругого поиска выходит (контейнер кибаны движется дальше). Я перезапустил все, подключил терминал к контейнеруasticsearch и увидел следующее сообщение об ошибке:

...
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
...

Что нужно изменить в файле docker-compose.yml, чтобы заработалasticsearch 7.0.1?

1 Ответ

4 голосов
/ 02 мая 2019

У меня сработало несколько изменений -

  • Добавить cluster.initial_master_nodes к службе эластичного поиска в compose -

    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/en/elasticsearch/reference/7.0/docker.html#docker-cli-run-prod-mode

...