Elasticsearch este un motor de căutare analitic faimos și open-source și este folosit frecvent în domeniile AI și învățarea automată. De obicei, stochează date nestructurate, semi-structurate și structurate. Mulți utilizatori trebuie să instaleze și să utilizeze Elasticsearch în containerele Docker pentru a-l executa în medii izolate.
Cu toate acestea, în timp ce execută Elasticsearch în containerul Docker bazat pe Linux, utilizatorii se pot confrunta cu „ Elasticsearch nu a ieșit în mod normal ” din cauza unui motiv necunoscut și vă sugerăm să verificați „ docker-cluster.log ” dosar.
Acest articol va demonstra metoda de rezolvare a „ Elasticsearch nu a ieșit în mod normal ” eroare la executarea containerului Elasticsearch în Docker.
Cum se rezolvă eroarea „Elasticsearch nu a ieșit normal” în timpul execuției Elasticsearch Docker Container?
Uneori, containerul Elasticsearch nu s-a executat normal, deoarece a fost executat într-un container Linux și, implicit, limita sa de memorie virtuală este prea mică. Acest lucru poate opri executarea corectă a containerului și poate afișa mesajul de eroare „ Elasticsearch nu a ieșit în mod normal ' așa cum se arată mai jos:
Pentru a rezolva problemele menționate, utilizatorul poate crește numărul mmap al memoriei virtuale pentru containerul Linux utilizând următorii pași.
Pasul 1: Porniți aplicația desktop Docker cu WSL
Mai întâi, porniți Docker Desktop cu WSL. Ne permite să executăm și să gestionăm containere Linux pe Windows:
wsl -d docker-desktop
Pasul 2: Măriți memoria virtuală
Apoi, rulați comanda de mai jos pentru a crește limita de memorie virtuală pentru containerele Linux:
sysctl -În vm.max_map_count= 262144
După aceea, executați comanda „exit” pentru a ieși din WSL:
Pasul 3: Creați o rețea
Acum, creați o rețea pentru containerul Elasticsearch Docker. Este opțional, dar poate fi benefic în scopuri de backup pentru rețelele Elasticsearch:
docker network crea elastic
Pasul 4: rulați Elasticsearch
Acum, executați imaginea Elasticsearch pentru a instala și rula Elastic Search în container:
docker run --Nume es01 --net elastic -p 9200 : 9200 -p 9300 : 9300 -t docker.elastic.co / elasticsearch / elasticsearch:8.8.2
În comanda de mai sus:
- „ -Nume ” specifică numele containerului Elasticsearch.
- „ -net ” este utilizat pentru a încorpora rețeaua externă.
- „ -p ” opțiunea este definirea porturilor containerului Elasticsearch.
- „ -t ” este folosit pentru a atribui „ TTY-pseudo ” terminal la container:
Rezultatul de mai jos arată că am executat cu succes containerul Elasticsearch și am rezolvat problema „ Elasticsearch nu a ieșit în mod normal ” eroare.
Aici, containerul va genera „ elastic ” parola utilizatorului. Folosind aceste acreditări, utilizatorul poate accesa Elasticsearch în browser. Acest lucru va genera și jetonul pentru a configura Kibana:
Pasul 5: Verificare
Navigheaza catre ' http://localhost:9200 ” în browser și verificați dacă containerul este executat sau nu pe portul specificat:
Ieșirea de mai sus indică faptul că am executat cu succes containerul pe port „ 9200 ” și a rezolvat „ Elasticsearch nu a ieșit în mod normal ” eroare.
Concluzie
Pentru a rezolva „ Elasticsearch nu a ieșit în mod normal ”, utilizatorii trebuie să mărească limita de memorie virtuală pentru containerul Linux. Pentru a face acest lucru, mai întâi porniți desktopul Docker cu WSL folosind „ wsl -d docker-desktop ” comanda. După aceea, creșteți limita de memorie virtuală folosind „ sysctl -w vm.max_map_count=262144 ” comanda. Apoi, rulați din nou imaginea pentru a crea și a porni containerul Elasticsearch. Această postare a ilustrat metoda de remediere a erorii „Elasticsearch nu a ieșit normal”.