Hur löser man felet 'Elasticsearch avslutades inte normalt' när Elasticsearch Docker Container körs?

Hur Loser Man Felet Elasticsearch Avslutades Inte Normalt Nar Elasticsearch Docker Container Kors



Elasticsearch är en öppen källkod och berömd analytisk sökmotor och används ofta inom AI och maskininlärning. Den lagrar vanligtvis ostrukturerad, semistrukturerad och strukturerad data. Många användare måste installera och använda Elasticsearch i Docker-behållare för att köra det i isolerade miljöer.

Men när de kör Elasticsearch i Linux-baserad Docker-behållare kan användare möta ' Elasticsearch avslutades inte normalt '-fel på grund av en okänd anledning och föreslår att du kontrollerar ' docker-cluster.log ' fil.







Den här artikeln kommer att demonstrera metoden hur man löser ' Elasticsearch avslutades inte normalt ”-fel när Elasticsearch-behållaren körs i Docker.



Hur löser man felet 'Elasticsearch avslutades inte normalt' när Elasticsearch Docker Container körs?

Ibland kördes inte Elasticsearch-behållaren normalt på grund av att den kördes i en Linux-behållare och som standard är dess virtuella minnesgräns för låg. Detta kan stoppa behållaren från att köras korrekt och visa felmeddelandet ' Elasticsearch avslutades inte normalt ' enligt nedanstående:







För att lösa de angivna problemen kan användaren öka det virtuella minnets mmap-antal för Linux-behållaren genom att använda följande steg.



Steg 1: Starta Docker Desktop Application med WSL

Starta först Docker Desktop med WSL. Det gör det möjligt för oss att köra och hantera Linux-behållare på Windows:

wsl -d docker-desktop

Steg 2: Öka det virtuella minnet

Kör sedan kommandot nedan för att öka gränsen för virtuellt minne för Linux-behållare:

sysctl -I vm.max_map_count= 262144

Efter det, kör kommandot 'exit' för att avsluta WSL:

Steg 3: Skapa ett nätverk

Skapa nu ett nätverk för Elasticsearch Docker-behållaren. Det är valfritt men kan vara fördelaktigt för säkerhetskopieringsändamål för Elasticsearch-nätverk:

hamnarnätverk skapa elastisk

Steg 4: Kör Elasticsearch

Kör nu Elasticsearch-avbildningen för att installera och köra Elastic-sökningen i behållaren:

hamnarkörning --namn es01 --netto elastisk -s 9200 : 9200 -s 9300 : 9300 -t docker.elastic.co / elastisk sökning / elasticsearch:8.8.2

I det ovan angivna kommandot:

  • ' -namn ” anger Elasticsearch-behållarens namn.
  • ' -netto flaggan används för att bädda in det externa nätverket.
  • ' -s alternativet är att definiera Elasticsearch-behållarens portar.
  • ' -t ' används för att tilldela ' TTY-pseudo ” terminal till containern:

Utdata nedan visar att vi framgångsrikt har kört Elasticsearch-behållaren och löst ' Elasticsearch avslutades inte normalt ' fel.

Här kommer behållaren att generera ' elastisk ' användarens lösenord. Med hjälp av dessa referenser kan användaren komma åt Elasticsearch i webbläsaren. Detta kommer också att generera token för att konfigurera Kibana:

Steg 5: Verifiering

Navigera till ' http://localhost:9200 ” i din webbläsare och verifiera att, oavsett om behållaren körs på den angivna porten eller inte:

Ovanstående utdata indikerar att vi framgångsrikt har kört behållaren på hamn ' 9200 ' och löste ' Elasticsearch avslutades inte normalt ' fel.

Slutsats

För att lösa ' Elasticsearch avslutades inte normalt ”-fel, användare måste öka gränsen för virtuellt minne för Linux-behållaren. För att göra det, starta först Docker-skrivbordet med WSL med ' wsl -d docker-desktop ” kommando. Efter det, öka gränsen för virtuellt minne med hjälp av ' sysctl -w vm.max_map_count=262144 ” kommando. Kör sedan bilden igen för att skapa och starta Elasticsearch-behållaren. Det här inlägget har illustrerat metoden för att fixa felet 'Elasticsearch avslutades inte normalt'.