Не удалось запустить док-контейнер elasticsearch

Я установил докер на Arch OS и уже некоторое время использую докер. В последнее время docker run -v "$PWD/esdata":/usr/share/elasticsearch/data -d -p 9200:9200 -p 9300:9300 -e ES_JAVA_OPTS="-Xms1g -Xmx1g" elasticsearch:5.1 больше не работает и контейнер автоматически останавливается через секунду. Затем я попробовал решение, данное здесь. Добавив tail -f /dev/null в конец моей предыдущей команды. Теперь контейнер запускается, но я ничего не получаю при переходе на localhost:9200.


person Reuben_v1    schedule 22.07.2017    source источник
comment
Теперь контейнер запускается: потому что вы запускаете в нем команду tail. Это, конечно, не то, что вы хотите. Всегда убедитесь, что понимаете, что делает команда, прежде чем вводить ее.   -  person Henry    schedule 22.07.2017
comment
можете ли вы указать журнал контейнера по журналам докеров ‹имя_контейнера или идентификатор контейнера›?   -  person Himanshu sharma    schedule 22.07.2017
comment
здесь pastebin.com/rBujntps   -  person Reuben_v1    schedule 22.07.2017
comment
Вы пытались подключиться к локальному хосту: 9300, так как ваша команда имеет опцию дублирования порта? Кстати, для запуска контейнера должно быть что-то запущено на переднем плане, если процесс переднего плана остановится, контейнер также остановится. По этой причине ваш контейнер запускается, когда вы добавляете команду tail.   -  person Branimir Đurek    schedule 23.07.2017


Ответы (4)


Наткнулся на ту же проблему с командой ниже

docker run -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:6.2.4

Моя среда — докер на MacOS. Согласно разделу «Для тех, кто использует Windows или OSX» в этой статьи Память Docker должна быть не менее 4 ГБ. После изменения лимита памяти контейнер запустился без проблем.

person Venura    schedule 30.05.2018

Есть проблема с установкой ES_JAVA_OPTS при запуске образа, должно быть:

docker run -d -p 9200:9200 -p 9300:9300 -e 'ES_JAVA_OPTS: -Xms1g -Xmx1g' elasticsearch:5.1
person Arpit Aggarwal    schedule 22.07.2017
comment
Не помогает. Я также прикрепил логи в комментарии выше - person Reuben_v1; 22.07.2017
comment
@Reuben_v1, кажется, проблема с подключением тома к Docker контейнеру. - person Arpit Aggarwal; 22.07.2017

в моем случае это была проблема с разрешением, поэтому я добавил разрешение рядом с томом:

этот: //чтение, запись и выполнение

version: '3'

services:
  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:6.2.4
    environment:
      - discovery.type=single-node
    volumes:
      - /home/shared-content-initiative/elasticsearch:/usr/share/elasticsearch/data //read, write and execute
      - ./elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml


person Salahudin Malik    schedule 21.08.2020

После долгих исследований я попробовал следующее. Теперь это работает для меня. Во-первых, убедитесь, что у вас установлена ​​Java, если вы используете Elastic Search 5 или 6. Для версии 7 она нам специально не нужна.

Сделайте службу активной: откройте файл yml в редакторе nano для следующих настроек.

sudo nano /etc/elasticsearch/elasticsearch.yml

Подтвердите следующие настройки: (раскомментируйте следующие строки, и они должны начинаться в начале без пробелов)

# Set the bind address to a specific IP (IPv4 or IPv6):
#
network.host: 127.0.0.1
#
# Set a custom port for HTTP:
#
http.port: 9200

# Pass an initial list of hosts to perform discovery when this node is started:
# The default list of hosts is ["127.0.0.1", "[::1]"]
#
discovery.seed_hosts: []

Подтвердите конфигурацию файла jvm.options в '/etc/elasticsearch/jvm.options':

sudo nano /etc/elasticsearch/jvm.options

Распределение памяти Xms и Xmx: Выделите необходимую память не более чем на 50% для оптимальной производительности. Есть и другие настройки, которые вы можете настроить, если знаете о swappiness, тайм-ауте и т. д., но, пожалуйста, не трогайте их, если вы не уверены.

# Xms represents the initial size of total heap space
# Xmx represents the maximum size of total heap space
-Xms4g
-Xmx4g

У меня 8 ГБ оперативной памяти, поэтому выделено 4 ГБ. Не стесняйтесь выделять -Xms2048m и -Xmx2048m и так далее в наборе {1024м, 750м, 512м, 256м}. Этого требует ваш выбор использования.

После исправления вышеуказанного выполните следующие команды и перезагрузите систему. Нам нужно перезапустить, так как мы отредактировали общесистемную конфигурацию среды, чтобы она вступила в силу.

Установка через докер и другие среды одновременно не проблема. Но запуск службы обоими способами приводит к конфликтам, поскольку TCP-порт, который прослушивает, не может быть продублирован. Короче говоря, запустите службу эластичного поиска либо из образа, извлеченного докером, либо из вашей локальной установки. Не то и другое одновременно. Если у вас есть ошибки, связанные с дублированием портов, обязательно нажмите следующую команду:

sudo systemctl stop elasticsearch.service

Чтобы Elasticsearch автоматически перезагружался при перезапуске системы, используйте следующие команды: (Если установлен с помощью wget и apt/из двоичных файлов/любой другой процесс установки эластичного поиска, кроме извлечения образа докера. Для докера достаточно просто перезагрузить daemon-d (1-я команда )):

sudo systemctl daemon-reload
sudo systemctl enable elasticsearch.service
sudo systemctl start elasticsearch.service

Это сработало для меня хорошо. Я надеюсь, что это проясняет проблему.

person Sai_Vyas    schedule 13.06.2021