Jak rozwiązać błąd „Elasticsearch nie zakończył się normalnie” podczas wykonywania kontenera Elasticsearch Docker?

Jak Rozwiazac Blad Elasticsearch Nie Zakonczyl Sie Normalnie Podczas Wykonywania Kontenera Elasticsearch Docker



Elasticsearch to słynna wyszukiwarka analityczna o otwartym kodzie źródłowym, często używana w dziedzinie sztucznej inteligencji i uczenia maszynowego. Zwykle przechowuje dane nieustrukturyzowane, częściowo ustrukturyzowane i ustrukturyzowane. Wielu użytkowników musi zainstalować i używać Elasticsearch w kontenerach Docker, aby uruchamiać je w izolowanych środowiskach.

Jednak podczas wykonywania Elasticsearch w kontenerze Docker opartym na systemie Linux użytkownicy mogą napotkać „ Elasticsearch nie zakończył się normalnie ” z nieznanego powodu i sugerujemy sprawdzenie „ docker-cluster.log ' plik.







Ten artykuł zademonstruje metodę rozwiązania problemu „ Elasticsearch nie zakończył się normalnie ” błąd podczas wykonywania kontenera Elasticsearch w Dockerze.



Jak rozwiązać błąd „Elasticsearch nie zakończył się normalnie” podczas wykonywania kontenera Elasticsearch Docker?

Czasami kontener Elasticsearch nie działał normalnie, ponieważ był uruchamiany w kontenerze Linux i domyślnie jego limit pamięci wirtualnej jest zbyt niski. Może to uniemożliwić prawidłowe działanie kontenera i wyświetlić komunikat o błędzie „ Elasticsearch nie zakończył się normalnie ' jak pokazano niżej:







Aby rozwiązać podane problemy, użytkownik może zwiększyć liczbę mmap pamięci wirtualnej dla kontenera Linux, wykonując następujące czynności.



Krok 1: Uruchom aplikację Docker Desktop z WSL

Najpierw uruchom Docker Desktop z WSL. Umożliwia nam uruchamianie i zarządzanie kontenerami Linuksa w systemie Windows:

wsl -D docker-desktop

Krok 2: Zwiększ pamięć wirtualną

Następnie uruchom poniższe polecenie, aby zwiększyć limit pamięci wirtualnej dla kontenerów systemu Linux:

sysctl -w vm.max_map_count= 262144

Następnie wykonaj polecenie „exit”, aby wyjść z WSL:

Krok 3: Utwórz sieć

Teraz utwórz sieć dla kontenera Elasticsearch Docker. Jest to opcjonalne, ale może być przydatne do tworzenia kopii zapasowych w sieciach Elasticsearch:

sieć dokerów tworzy elastyczne

Krok 4: Uruchom Elasticsearch

Teraz uruchom obraz Elasticsearch, aby zainstalować i uruchomić wyszukiwanie Elastic w kontenerze:

uruchomienie dokera --nazwa es01 --internet elastyczny -P 9200 : 9200 -P 9300 : 9300 -T docker.elastic.co / elastyczne wyszukiwanie / elastyczne wyszukiwanie: 8.8.2

W powyższym poleceniu:

  • -nazwa ” określa nazwę kontenera Elasticsearch.
  • -internet Flaga ” służy do osadzenia sieci zewnętrznej.
  • -P ” polega na zdefiniowaniu portów kontenera Elasticsearch.
  • -T ” służy do przypisania „ TTY-pseudo ”terminal do kontenera:

Poniższe dane wyjściowe pokazują, że pomyślnie wykonaliśmy kontener Elasticsearch i rozwiązaliśmy problem „ Elasticsearch nie zakończył się normalnie ' błąd.

Tutaj kontener wygeneruje „ elastyczny ” hasło użytkownika. Korzystając z tych poświadczeń, użytkownik może uzyskać dostęp do Elasticsearch w przeglądarce. Spowoduje to również wygenerowanie tokena do skonfigurowania Kibany:

Krok 5: Weryfikacja

Nawigować do ' http://localhost:9200 ” w przeglądarce i sprawdź, czy kontener jest wykonywany na podanym porcie, czy nie:

Powyższe dane wyjściowe wskazują, że pomyślnie wykonaliśmy kontener na porcie „ 9200 ” i rozwiązał „ Elasticsearch nie zakończył się normalnie ' błąd.

Wniosek

Aby rozwiązać problem „ Elasticsearch nie zakończył się normalnie ”, użytkownicy muszą zwiększyć limit pamięci wirtualnej dla kontenera Linux. Aby to zrobić, najpierw uruchom pulpit Docker z WSL, używając „ wsl -d docker-desktop ' Komenda. Następnie zwiększ limit pamięci wirtualnej za pomocą „ sysctl -w vm.max_map_count=262144 ' Komenda. Następnie ponownie uruchom obraz, aby utworzyć i uruchomić kontener Elasticsearch. Ten post zilustrował metodę naprawy błędu „Elasticsearch nie zakończył się normalnie”.