Implementierung der Docker-Bereitstellung von ElasticSearch und ElasticSearch-Head

Implementierung der Docker-Bereitstellung von ElasticSearch und ElasticSearch-Head

In diesem Artikel wird hauptsächlich erläutert, wie ElasticSearch: Version 6.8.4 mit Docker bereitgestellt wird. Es wird erläutert, wie aus Docker gezogen wird, um ElasticSearch schließlich auszuführen und ElasticSearch-Head zu installieren, ein kleines Tool zum Verwalten von ElasticSearch-bezogenen Informationen. Die Suche auf der Homepage dieses Blogsystems wird mit ElasticSearch implementiert. Da ElasticSearch so schnell aktualisiert wird, dass SpringData-ElasticSearch nicht mit den Updates von Es Schritt halten kann, habe ich zu Beginn auch Version 8.x heruntergeladen, was dazu führte, dass SpringData-ElasticSearch einen Fehler meldete. Am Ende habe ich 6.8.4 gewählt. Notieren Sie es hier

1. Docker-Bereitstellung von ElasticSearch: Version 6.8.4

1.1 Ziehen Sie das Bild

Docker-Pull docker.elastic.co/elasticsearch/elasticsearch:6.8.4

1.2 Ausführen des Containers

Der Standardport von ElasticSearch ist 9200. Wir ordnen den Port 9200 der Hostumgebung dem Port 9200 des Docker-Containers zu und können dann auf den ElasticSearch-Dienst im Docker-Container zugreifen. Gleichzeitig benennen wir diesen Container es.

docker run -d --name es -p 9200:9200 -p 9300:9300 
-e "discovery.type=Einzelknoten" 
-e ES_JAVA_OPTS="-Xms=256m -Xms=256m" 
docker.elastic.co/elasticsearch/elasticsearch:6.8.4

veranschaulichen:

-e discovery.type=single-node: zeigt den Start eines einzelnen Knotens an

-e ES_JAVA_OPTS="-Xms=256m -Xms=256m" : Gibt an, dass die Speichergröße für den ES-Start festgelegt wird. Dies muss unbedingt festgelegt werden, da sonst später der Speicher nicht ausreicht, wie bei meinem eigenen beschissenen Server!

1.3 Nicht genügend Speicher

Nachdem CentOS Elasticsearch heruntergeladen und die Konfiguration geändert hat, führen Sie den Docker-Befehl aus:

Es wurde festgestellt, dass der Start nicht erfolgreich war. Nach dem Entfernen des -d im Befehl lautete der ausgegebene Fehler wie folgt

Java HotSpot(TM) 64-Bit Server VM-Warnung: INFO:
os::commit_memory(0x0000000085330000, 2060255232, 0) fehlgeschlagen;
Fehler = „Speicher kann nicht zugewiesen werden“ (Fehlernummer = 12)

Nach einigem Suchen stellte ich fest, dass dies daran lag, dass die von elasticsearch6.0 zugewiesene JVM-Speicherplatzgröße standardmäßig 2 GB betrug und der Speicher für die Zuweisung nicht ausreichte.

Die Lösung besteht darin, den Ausführungsbefehl für die JVM-Speicherplatzzuweisung zu ändern:

finde /var/lib/docker/overlay/ -name jvm.options

Suchen Sie die Datei jvm.options und verwenden Sie den Befehl vi, um die Datei jvm.options wie folgt zu öffnen:

-Xms2g 
-Xmx2g
Geändert zu -Xms512m 
-Xmx512m

Einfach speichern und beenden. Führen Sie den Befehl „Erstellen und Ausführen von Elasticsearch“ erneut aus. Der Start erfolgt erfolgreich.

2. Docker-Bereitstellung ElasticSearch-Heard

2.1 Ziehen Sie das Bild

Docker zieht Mobz/Elasticsearch-Kopf: 5

2.2 Ausführen des Containers

Docker erstellen --Name Elasticsearch-Head -p 9100:9100 Mobz / Elasticsearch-Head:5

2.3 Starten Sie den Container

Docker starten Elasticsearch-Head

2.4 Öffnen Sie den Browser: http://IP:9100

Ich stellte fest, dass ich keine Verbindung herstellen konnte, weil es ein domänenübergreifendes Problem gab. Da das Front-End und das Back-End separat entwickelt wurden, musste ich es einrichten

2.5 Geben Sie den gerade gestarteten es-Container ein, Containername = es

docker exec -it es /bin/bash

2.6 Ändern Sie die Datei elasticsearch.yml

vi config/elasticsearch.yml

Hinzufügen zu

http.cors.enabled: wahr
http.cors.allow-origin: "*"

Tatsächlich fügt die YML-Datei von SpringBoot domänenübergreifende Unterstützung hinzu

2.7 Container beenden und neu starten

Ausfahrt
Docker Neustart es

2.8 Besuchen Sie http://localhost:9100

Zusammenfassen:

In diesem Artikel wird einfach erklärt, wie Sie ElasticSearch mit Docker installieren und welche Fallstricke auftreten können, darunter unzureichender Speicher oder eine zu hohe Version, sowie die Installation und domänenübergreifende Konfiguration von ElasticSearch-Heard. Im nächsten Artikel wird erklärt, wie Sie den chinesischen Wortsegmentierer in ElasticSearch installieren.

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • Probleme und Lösungen bei der Installation von ElasticSearch und Kibana in Docker
  • So installieren Sie den Elasticsearch7.6-Cluster im Docker und legen ein Kennwort fest
  • So installieren Sie ElasticSearch auf Docker in einem Artikel
  • Tutorial zur Installation von Elasticsearch 7.6.2 in Docker
  • Erfahren Sie, wie Sie Elasticsearch- und Head-Plugins mit Docker installieren.

<<:  Bestimmte Vorgänge der geplanten MySQL-Löschung von Sicherungsdaten

>>:  Gemeinsame Überprüfung beider Vue-Felder zur Realisierung der Kennwortänderungsfunktion

Artikel empfehlen

Kodierungsprobleme und -lösungen, wenn MySQL zwei Tabellen verknüpft

Wenn Mysql zwei Tabellen verknüpft, wird eine Feh...

So verwenden Sie die Debouce-Anti-Shake-Funktion in Vue

Inhaltsverzeichnis 1. Anti-Shake-Funktion 2. Verw...

So geben Sie Parametervariablen extern im Docker an

In diesem Artikel wird hauptsächlich erläutert, w...

So ändern Sie die SSH-Portnummer in der Centos8-Umgebung

Inhaltsverzeichnis Vorwort Start Vorwort Die Stan...

Beispiel zum Ändern von Stilen über CSS-Variablen

Frage Wie ändere ich den CSS-Pseudoklassenstil mi...

Rendering-Funktion und JSX-Details

Inhaltsverzeichnis 1. Grundlagen 2. Knoten, Bäume...

Einige Einstellungen von Div bezüglich Rahmen und Transparenz

rahmen: Stil = „Rahmenstil: durchgezogen; Rahmenbr...

JavaScript implementiert die Eingabeüberprüfung im Kennwortfeld

Manchmal ist es notwendig, bei Benutzereingaben e...

Erklärung der horizontalen und vertikalen Tabellenpartitionierung von MySQL

In meinem vorherigen Artikel habe ich gesagt, das...

Proxy realisiert das Prinzip der bidirektionalen Bindung von Vue3-Daten

Inhaltsverzeichnis 1. Vorteile von Proxy gegenübe...

Das WeChat-Applet implementiert das Scrollen von Text

In diesem Artikelbeispiel wird der spezifische Co...

So verwenden Sie jconsole zum Überwachen von Remote-Tomcat-Diensten

Was ist JConsole JConsole wurde in Java 5 eingefü...