ElasticSearch と ElasticSearch-Head の Docker デプロイメントの実装

ElasticSearch と ElasticSearch-Head の Docker デプロイメントの実装

この記事では主にDockerを使ってElasticSearch:バージョン6.8.4をデプロイする方法について説明しています。Dockerからpullして最終的にElasticSearchを実行し、ElasticSearch関連の情報を管理するための小さなツールであるElasticSearch-Headをインストールする方法について説明します。このブログシステムのホームページの検索はElasticSearchを使用して実装されています。ElasticSearchは更新が速く、SpringData-ElasticSearchがEsの更新に追いつけないため、最初はバージョン8.xもダウンロードしましたが、SpringData-ElasticSearchがエラーを報告しました。最終的に6.8.4を選択しました。ここに記録します

1. ElasticSearch の Docker デプロイメント: バージョン 6.8.4

1.1 イメージを取得する

docker pull docker.elastic.co/elasticsearch/elasticsearch:6.8.4

1.2 コンテナを実行する

ElasticSearch のデフォルト ポートは 9200 です。ホスト環境のポート 9200 を Docker コンテナのポート 9200 にマッピングすると、Docker コンテナ内の ElasticSearch サービスにアクセスできます。同時に、このコンテナに es という名前を付けます。

docker run -d --name es -p 9200:9200 -p 9300:9300 
-e "検出タイプ=単一ノード" 
-e ES_JAVA_OPTS="-Xms=256m -Xms=256m" 
6.8.4 より前のバージョン

例:

-e discovery.type=single-node: 単一ノードの起動を示します

-e ES_JAVA_OPTS="-Xms=256m -Xms=256m" : ES 起動時のメモリ サイズの設定を示します。これは必ず設定する必要があります。そうしないと、自分のひどいサーバーのように、後でメモリが不足することになります。

1.3 メモリ不足

Centos が elasticsearch をダウンロードして設定を変更した後、docker コマンドを実行します。

起動が成功しなかったことが判明しました。コマンドの-dを削除すると、次のエラーが表示されました。

Java HotSpot(TM) 64 ビット サーバー VM の警告: INFO:
os::commit_memory(0x0000000085330000, 2060255232, 0) が失敗しました。
エラー='メモリを割り当てられません' (errno=12)

調べてみると、elasticsearch6.0 によって割り当てられたデフォルトの JVM スペース サイズが 2g であり、割り当てるメモリが不足していたことが原因であることがわかりました。

解決策は、jvm スペース割り当て実行コマンドを変更することです。

/var/lib/docker/overlay/ -name jvm.options を検索します。

jvm.options ファイルを見つけて、vi コマンドを使用して次のように jvm.options ファイルを開きます。

-Xms2g 
-Xmx2g
-Xms512mに変更 
-Xmx512m

保存して終了するだけです。再度、create および run elasticsearch コマンドを実行すると、正常に起動します。

2. Docker デプロイメント ElasticSearch-Heard

2.1 イメージを取得する

docker pull mobz/elasticsearch-head:5

2.2 コンテナを実行する

docker create --name elasticsearch-head -p 9100:9100 mobz/elasticsearch-head:5

2.3 コンテナを起動する

docker で elasticsearch-head を起動します

2.4 ブラウザを開く: http://IP:9100

クロスドメインの問題で接続できないことがわかりました。フロントエンドとバックエンドは別々に開発されていたため、esを設定する必要がありました。

2.5 起動したばかりのesコンテナに入ります。コンテナ名 = es

docker exec -it es /bin/bash

2.6 elasticsearch.ymlファイルを変更する

vi config/elasticsearch.yml

に追加

http.cors.enabled: 有効
http.cors.allow-origin: "*"

実際、SpringBootのymlファイルはクロスドメインサポートを追加します

2.7 コンテナを終了して再起動する

出口
docker 再起動 es

2.8 http://localhost:9100 にアクセスします。

要約:

この記事では、Docker を使用して ElasticSearch をインストールする方法と、メモリ不足やバージョンが高すぎるなどの問題、ElasticSearch-Heard のインストールとクロスドメイン構成について簡単に説明します。次の記事では、ElasticSearch に中国語の単語セグメンターをインストールする方法について説明します。

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Docker に ElasticSearch と Kibana をインストールする際の問題と解決策
  • DockerにElasticsearch7.6クラスタをインストールしてパスワードを設定する方法
  • Docker に ElasticSearch をインストールする方法を 1 つの記事で解説
  • Docker に Elasticsearch 7.6.2 をインストールするチュートリアル
  • Dockerを使用してelasticsearchとheadプラグインをインストールする方法を説明します

<<:  MYSQLのバックアップデータのスケジュールクリアの特定の操作

>>:  Vue 2つのフィールドの共同検証によりパスワード変更機能を実現

推薦する

VMWare 仮想マシン 15.X LAN ネットワーク構成チュートリアル図

最近、分散型およびビッグデータ技術について学ぶために、いくつかの仮想マシンに取り組んでいます。まず、...

mysql replace into の使用法の詳細な説明

replace ステートメントは、一般的に insert ステートメントに似ています。ただし、テーブ...

ウェブサイトメンテナンスページのリスト構築のヒント

また、多くの場合、メンテナンスのために Web サイトを少なくとも数分間オフラインにする必要がありま...

CSS でのナビゲーション バーとドロップダウン メニューの実装

1. CSSナビゲーションバー(1)ナビゲーションバーの機能ナビゲーション バーを使いこなすことは、...

Vue ポーリング リクエスト ソリューションの完全な例

世論調査の理解実際、ポーリングの焦点はループ自体ではなく、実行間の間隔にあります。 Ajax は非同...

CSS フレックスレイアウトのリストの最後の行を左揃えにする N 通りの方法 (要約)

張新旭氏の記事を引用して皆さんにシェアしたいと思います。 変更を加えたい場合は、対応する画像によって...

MySQL sql_mode の分析と設定の説明

昨夜、MySQL データベースにデータセットを挿入したときにエラーが発生しました。データベースは容赦...

22 Vue 最適化のヒント (プロジェクトの実践)

目次コードの最適化v-for でキーを使用するv-if/v-else-if/v-else でキーを使...

Windows サーバー ファイルをローカルにバックアップする方法、Windows サーバー データ バックアップ ソリューション

重要なデータはバックアップする必要があり、リアルタイムでバックアップする必要があります。そうしないと...

ico ミラー コードを HTML に追加します (favicon.ico はルート ディレクトリに配置されます)

コード:コードをコピーコードは次のとおりです。 <!DOCTYPE html PUBLIC &...

k8s に ingress-nginx をデプロイする手順

目次序文1. Ingressの展開と構成2. httpsを使用する序文k8sクラスタサービスがデプロ...

MySQLイベント計画タスクに関する簡単な説明

1. イベントが有効になっているかどうかを確認する'%sche%' のような変数を表...

https ウェブサイトを展開し、Nginx でアドレス書き換えを構成するための詳細な手順

Nginx は、高性能な Web サイト サーバーおよびリバース プロキシ サーバーであり、IMAP...

Ubuntuでネットワークルーティングテーブルを表示する方法

Linux におけるルーティングとルーティング テーブルとは何ですか?ルーティングのプロセスとは、ネ...