Elasticsearch ist eine Open-Source- und bekannte analytische Suchmaschine und wird häufig in den Bereichen KI und maschinelles Lernen eingesetzt. Es speichert normalerweise unstrukturierte, halbstrukturierte und strukturierte Daten. Viele Benutzer müssen Elasticsearch in Docker-Containern installieren und verwenden, um es in isolierten Umgebungen auszuführen.
Beim Ausführen von Elasticsearch in einem Linux-basierten Docker-Container können Benutzer jedoch mit der „ Elasticsearch wurde nicht normal beendet „Fehler aus unbekannter Ursache und wir empfehlen Ihnen, das „Fehler“ zu überprüfen. docker-cluster.log ' Datei.
In diesem Artikel wird die Methode zum Beheben des Problems „ Elasticsearch wurde nicht normal beendet ”Fehler beim Ausführen des Elasticsearch-Containers in Docker.
Wie kann der Fehler „Elasticsearch wurde nicht normal beendet“ beim Ausführen des Elasticsearch-Docker-Containers behoben werden?
Manchmal wurde der Elasticsearch-Container nicht normal ausgeführt, weil er in einem Linux-Container ausgeführt wurde und sein virtuelles Speicherlimit standardmäßig zu niedrig ist. Dies kann dazu führen, dass der Container nicht ordnungsgemäß ausgeführt wird und die Fehlermeldung „ Elasticsearch wurde nicht normal beendet ' Wie nachfolgend dargestellt:
Um die genannten Probleme zu beheben, kann der Benutzer die mmap-Anzahl des virtuellen Speichers für den Linux-Container mithilfe der folgenden Schritte erhöhen.
Schritt 1: Starten Sie die Docker-Desktopanwendung mit WSL
Starten Sie zunächst den Docker Desktop mit WSL. Es ermöglicht uns, Linux-Container unter Windows auszuführen und zu verwalten:
wsl -D Docker-Desktop
Schritt 2: Erhöhen Sie den virtuellen Speicher
Führen Sie als Nächstes den folgenden Befehl aus, um das virtuelle Speicherlimit für Linux-Container zu erhöhen:
sysctl -In vm.max_map_count= 262144
Führen Sie anschließend den Befehl „exit“ aus, um die WSL zu verlassen:
Schritt 3: Erstellen Sie ein Netzwerk
Erstellen Sie nun ein Netzwerk für den Elasticsearch Docker-Container. Es ist optional, kann aber für Backup-Zwecke für Elasticsearch-Netzwerke von Vorteil sein:
Docker-Netzwerk erstellt elastisch
Schritt 4: Führen Sie Elasticsearch aus
Führen Sie nun das Elasticsearch-Image aus, um die Elastic-Suche im Container zu installieren und auszuführen:
Docker-Lauf --Name es01 --Netz elastisch -P 9200 : 9200 -P 9300 : 9300 -T docker.elastic.co / elastische Suche / elastische Suche:8.8.2
Im oben angegebenen Befehl:
- „ -Name „gibt den Namen des Elasticsearch-Containers an.
- „ -Netz Das Flag „“ wird zum Einbetten des externen Netzwerks verwendet.
- „ -P Die Option „definiert die Ports des Elasticsearch-Containers.
- „ -T ” wird verwendet, um die „ TTY-Pseudo ” Terminal zum Container:
Die folgende Ausgabe zeigt, dass wir den Elasticsearch-Container erfolgreich ausgeführt und das Problem „ Elasticsearch wurde nicht normal beendet ' Fehler.
Hier generiert der Container das „ elastisch ”Benutzerpasswort. Mit diesen Anmeldeinformationen kann der Benutzer im Browser auf Elasticsearch zugreifen. Dadurch wird auch das Token zum Konfigurieren von Kibana generiert:
Schritt 5: Verifizierung
Navigieren Sie zu „ http://localhost:9200 ” in Ihrem Browser und überprüfen Sie, ob der Container auf dem angegebenen Port ausgeführt wird oder nicht:
Die obige Ausgabe zeigt an, dass wir den Container erfolgreich auf Port ausgeführt haben. 9200 “ und löste das „ Elasticsearch wurde nicht normal beendet ' Fehler.
Abschluss
Um das „ Elasticsearch wurde nicht normal beendet „Fehler, Benutzer müssen das virtuelle Speicherlimit für den Linux-Container erhöhen. Starten Sie dazu zunächst den Docker-Desktop mit WSL über „ wsl -d Docker-Desktop ' Befehl. Erhöhen Sie anschließend das virtuelle Speicherlimit mit „ sysctl -w vm.max_map_count=262144 ' Befehl. Führen Sie dann das Image erneut aus, um den Elasticsearch-Container zu erstellen und zu starten. In diesem Beitrag wurde die Methode zur Behebung des Fehlers „Elasticsearch wurde nicht normal beendet“ veranschaulicht.