Docker が Elasticsearch と関連プラグインをインストールし、プロセス全体でテストしてピットを回避するための詳細な手順


最近、同社はファイル管理システムを開発し、全文検索機能を実現する必要があるため、Elasticsearch、kibana、およびその関連プラグインの Analysis-ik、elasticsearch-head、および ingest-attachment について調査を行っています。上記のサービスを Docker コンテナにデプロイする方法を詳しく紹介します。

まず第一に: インストールのバージョンを確認することは非常に重要です。そうでないと大変なことになります。
このプロジェクトは Ruoyi フレームワークを採用しています。現時点では、Ruoyi フレームワークの最新バージョンは Spring Boot 依存関係 2.5.14 を参照しています。
依存関係を表示するには、Maven ウェアハウス https://mvnrepository.com/ にログインしてください。


elasticsearch を検索すると、Spring Boot フレームワークで参照されているバージョンが 7.12.1 であることがわかります。そのため、次のインストール手順とその後の開発はバージョン 7.12.1 に基づいています。


1.elasticsearchをインストールする

1.画像をプルします

docker pull elasticsearch:7.12.1

2. コンテナを作成して起動する

docker run --name=es -p 9200:9200 -p 9300:9300 \
-e "discovery.type=single-node" \
-v $PWD/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v $PWD/data:/usr/share/elasticsearch/data \
-v $PWD/logs:/usr/share/elasticsearch/logs \
-v $PWD/plugins:/usr/share/elasticsearch/plugins \
-d elasticsearch:7.12.1

--name: コンテナーの名前付け

-p: マップポート

-e: シングルノード展開の場合、環境変数「discovery.type=single-node」を指定する必要があります。指定しないとエラーが報告されます。エラー内容は次のとおりです。

デフォルトの検出設定は運用環境での使用には適していません。[discovery.seed_hosts、discovery.seed_providers、cluster.initial_master_nodes] のうち少なくとも 1 つを構成する必要があります 

-v: マウント ディレクトリ。$PWD は現在のディレクトリです。

-d: コンテナはバックグラウンドで実行されます

3. エラー報告、許可なし

次のようにログを確認します。

docker logs 容器ID

 ディレクトリに権限を与えて再起動します。

chmod -R 777 $PWD

4. サービスへのアクセス、失敗しました

curl localhost:9200 は、サーバーからの空の応答というメッセージを返します

コンテナー内の /usr/share/elasticsearch/config/elasticsearch.yml ファイル内の xpack.security.enabled の値を false に変更します。

5. サービスにアクセスすると、インストールが成功します。

2. キバナをインストールする

1.画像をプルします

docker  pull  kibana:7.12.1

2. コンテナを作成して起動する

docker run -d -p 5601:5601 --name kibana --link elasticsearch:elasticsearch docker.io/kibana:7.12.1

--link: elasticsearch が kibana コンテナに接続されていることを指定します。そうでない場合は、サーバーの準備がまだできていないというエラーが報告されます。

3. サービスにアクセスしてテストする

http://サーバーIP:5601/app/dev_tools#/consoleにアクセスしてください。
   

GET /_analyze
    {
      "analyzer": "ik_max_word",
      "text": "冰糖码奇朵"
    }


3. elasticsearch-analysis-ik をインストールします。

オンライン インストールのダウンロードは非常に遅く、エラーが何度も報告されるため、オフライン インストールが採用されています。

1. インストールパッケージをダウンロードする

https://github.com/medcl/elasticsearch-analysis-ik/releases

2.サーバーにアップロードする

アップロードしたディレクトリは usr/local/es/elasticsearch-analysis-ik-7.12.1.zip です。

3.コンテナ内にコピー

docker cp usr/local/es/elasticsearch-analysis-ik-7.12.1.zip 容器ID:/usr/share/elasticsearch

4. コンテナに入る

docker exec -it 容器ID /bin/bash

5. プラグインをインストールする

elasticsearch-plugin install file:/usr/share/elasticsearch/elasticsearch-analysis-ik-7.12.1.zip

以下のように、インストールが完了します。

6. コンテナを終了します

exit

7. elasticsearchを再起動します

docker restart 容器ID

 4. elasticsearch-head をインストールする

1.画像をプルします

docker  pull  mobz/elasticsearch-head:5-alpine

2. コンテナを作成して起動する

docker run -d -p 9100:9100 docker.io/mobz/elasticsearch-head:5-alpine

3. 接続エラーを解決する
構成ファイル elasticsearch.yml を変更し、次の 2 行を追加します。

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

4. アクセス エラー 406 を解決し
、コンテナ内の usr/src/app/_site/vendor.js ファイルを変更します。

行 6886 /contentType: "application/x-www-form-urlencoded は次のように変更されます:

contentType: "application/json;charset=UTF-8"

7573 行目 var InspectionData = s.contentType ==`= "application/x-www-form-urlencoded" &&` は次のように変更されます。   

var inspectData = s.contentType === "application/json;charset=UTF-8" &&

5. インジェストアタッチメントをインストールする

1. インストールパッケージをダウンロードする

https://artifacts.elastic.co/downloads/elasticsearch-plugins/ingest-attachment/ingest-attachment-7.12.1.zip

2.サーバーにアップロードする

アップロードしたディレクトリは usr/local/es/ingest-attachment-7.12.1.zip です。

3.コンテナ内にコピー

docker cp usr/local/es/ingest-attachment-7.12.1.zip 容器ID:/usr/share/elasticsearch

4. コンテナに入る
 

docker exec -it 容器ID/bin/bash

5. プラグインをインストールする

elasticsearch-plugin install file:/usr/share/elasticsearch/ingest-attachment-7.12.1.zip

以下のように、インストールが完了します。

6. コンテナを終了します

exit

7. elasticsearchを再起動します

docker restart 容器ID

この時点で、Elasticsearch、kibana、analytics-ik、elasticsearch-head、および ingest-attachment のインストールは完了です。

おすすめ

転載: blog.csdn.net/secretdaixin/article/details/128201184