Запустите Elasticsearch на AWS EC2 с Docker - PullRequest
1 голос
/ 13 февраля 2020

Я пытаюсь запустить Elasticsearch с Docker на экземпляре AWS EC2, но когда он запустится, через несколько секунд будет остановлен, у кого-нибудь из вас есть какие-либо проблемы, в чем может быть проблема?

Это мой конфиг Elasticsearch в docker-compose.yaml:

 elasticsearch:
  build:
    context: ./elasticsearch
    args:
      - ELK_VERSION=${ELK_VERSION}
  volumes:
    - elasticsearch:/usr/share/elasticsearch/data
  environment:
    - cluster.name=laradock-cluster
    - node.name=laradock-node
    - bootstrap.memory_lock=true
    - discovery.type=single-node
    - "ES_JAVA_OPTS=-Xms7g -Xmx7g"
    - xpack.security.enabled=false
    - xpack.monitoring.enabled=false
    - xpack.watcher.enabled=false
    - cluster.initial_master_nodes=laradock-node
  ulimits:
    memlock:
      soft: -1
      hard: -1
    nofile:
      soft: 65536
      hard: 65536
  ports:
    - "${ELASTICSEARCH_HOST_HTTP_PORT}:9200"
    - "${ELASTICSEARCH_HOST_TRANSPORT_PORT}:9300"
  depends_on:
    - php-fpm
  networks:
    - frontend
    - backend

И это мой Dockerfile:

FROM docker.elastic.co/elasticsearch/elasticsearch:7.5.1

RUN /usr/share/elasticsearch/bin/elasticsearch-plugin install --batch discovery-ec2

EXPOSE 9200 9300

Кроме того, я сделал sysctl -w vm.max_map_count=655360 на своем AWS Экземпляр EC2

Примечание: мой AWS Экземпляр EC2 - Ubuntu 18.4

Спасибо

1 Ответ

2 голосов
/ 14 февраля 2020

Я не уверен насчет вашего docker-compose.yaml, поскольку вы не указываете это в своем файле Docker, Но я могу воспроизвести проблему . Я запустил ту же Ubuntu 18.4 в своей учетной записи AWS и использовал ваш dockerfile для запуска контейнера ES docker, используя следующие команды:

docker build --tag=elasticsearch-custom .
docker run -ti -v /usr/share/elasticsearch/data elasticsearch-custom

И мой контейнер docker также останавливался сразу после запуска вверх, как показано ниже:

ubuntu@ip-172-31-32-95:~$ docker ps -a
CONTAINER ID        IMAGE                  COMMAND                  CREATED             STATUS                      PORTS               NAMES
03cde4a19389        elasticsearch-custom   "/usr/local/bin/dock…"   33 seconds ago      Exited (78) 6 seconds ago                       mystifying_napier 

При проверке журналов на консоли, при запуске docker, я обнаружил ниже ошибку:

ОШИБКА: [1] bootstrap проверка не удалась [1]: настройки обнаружения по умолчанию не подходят для производственного использования; по крайней мере один из [discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes] должен быть настроен

. Это очень хорошо известная ошибка, которую можно легко устранить, просто добавив -e "discovery.type=single-node" к docker Команда Run. После добавления этого в docker запустите команду, как показано ниже:

docker run -e "discovery.type=single-node" -ti -v /usr/share/elasticsearch/data elasticsearch-custom

нормально работает, как показано ниже:

CONTAINER ID        IMAGE                  COMMAND                  CREATED             STATUS              PORTS                NAMES
191fc3dceb5a        elasticsearch-custom   "/usr/local/bin/dock…"   8 minutes ago       Up 8 minutes        9200/tcp, 9300/tcp   recursing_elgamal
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...