Как устранить ошибку «Elasticsearch не завершился нормально» при выполнении Elasticsearch Docker Container?

Kak Ustranit Osibku Elasticsearch Ne Zaversilsa Normal No Pri Vypolnenii Elasticsearch Docker Container



Elasticsearch — известная аналитическая поисковая система с открытым исходным кодом, которая часто используется в областях искусственного интеллекта и машинного обучения. Обычно он хранит неструктурированные, полуструктурированные и структурированные данные. Многим пользователям необходимо установить и использовать Elasticsearch в контейнерах Docker, чтобы выполнять его в изолированных средах.

Однако при выполнении Elasticsearch в контейнере Docker на базе Linux пользователи могут столкнуться с « Elasticsearch не завершился нормально ” по неизвестной причине и предлагаем вам проверить “ докер-кластер.log ' файл.







В этой статье будет продемонстрирован метод решения проблемы « Elasticsearch не завершился нормально ” при выполнении контейнера Elasticsearch в Docker.



Как устранить ошибку «Elasticsearch не завершился нормально» при выполнении Elasticsearch Docker Container?

Иногда контейнер Elasticsearch не запускался нормально из-за того, что он выполнялся в контейнере Linux, и по умолчанию его предел виртуальной памяти слишком мал. Это может помешать правильному выполнению контейнера и отобразить сообщение об ошибке « Elasticsearch не завершился нормально ' как показано ниже:







Чтобы решить указанные проблемы, пользователь может увеличить количество mmap виртуальной памяти для контейнера Linux, выполнив следующие действия.



Шаг 1. Запустите настольное приложение Docker с помощью WSL

Сначала запустите Docker Desktop с помощью WSL. Это позволяет нам запускать контейнеры Linux и управлять ими в Windows:

wsl докер-рабочий стол

Шаг 2: Увеличьте виртуальную память

Затем выполните приведенную ниже команду, чтобы увеличить лимит виртуальной памяти для контейнеров Linux:

sysctl vm.max_map_count= 262144

После этого выполните команду «exit» для выхода из WSL:

Шаг 3: Создайте сеть

Теперь создайте сеть для контейнера Elasticsearch Docker. Это необязательно, но может быть полезно для целей резервного копирования для сетей Elasticsearch:

сеть докеров создает эластичную

Шаг 4: Запустите Elasticsearch

Теперь запустите образ Elasticsearch, чтобы установить и запустить поиск Elastic в контейнере:

докер запустить --имя es01 --сеть эластичный -п 9200 : 9200 -п 9300 : 9300 docker.elastic.co / эластичный поиск / эластичный поиск: 8.8.2

В приведенной выше команде:

  • -имя ” указывает имя контейнера Elasticsearch.
  • -сеть ” используется для встраивания внешней сети.
  • -п » определяет порты контейнера Elasticsearch.
  • ” используется для присвоения “ TTY-псевдо терминал к контейнеру:

Приведенный ниже вывод показывает, что мы успешно запустили контейнер Elasticsearch и разрешили « Elasticsearch не завершился нормально ' ошибка.

Здесь контейнер сгенерирует « эластичный » пароль пользователя. Используя эти учетные данные, пользователь может получить доступ к Elasticsearch в браузере. Это также сгенерирует токен для настройки Kibana:

Шаг 5: Проверка

Перейдите к ' http://localhost:9200 ” в вашем браузере и проверьте, выполняется ли контейнер на указанном порту или нет:

Приведенный выше вывод указывает на то, что мы успешно запустили контейнер в порту. 9200 ' и разрешил ' Elasticsearch не завершился нормально ' ошибка.

Заключение

Чтобы решить « Elasticsearch не завершился нормально », пользователи должны увеличить лимит виртуальной памяти для контейнера Linux. Для этого сначала запустите рабочий стол Docker с помощью WSL, используя « wsl -d докер-рабочий стол команда. После этого увеличьте лимит виртуальной памяти с помощью « sysctl -w vm.max_map_count = 262144 команда. Затем снова запустите образ, чтобы создать и запустить контейнер Elasticsearch. Этот пост иллюстрирует метод исправления ошибки «Elasticsearch не завершился нормально».