Elasticsearch: カスタム Elasticsearch イメージ

多くの場合、Elasticsearch イメージをカスタマイズしたいと考えています。たとえば、いくつかの追加のプラグインをインストールする必要があります。または、Elasticsearch にシノニム ファイルとカスタム構成が必要な場合は? または、対応する構成などが必要です。各 docker デプロイメントで上記の手順を繰り返したいのですが、どのようにすればよいでしょうか? すべての詳細を備えた作品を見つけるのは少し難しいかもしれません. これを念頭に置いて、Docker コンテナーのより詳細なカスタム構成を投稿することにしました。

必須

  • Docker はすでにシステムにインストールされています
  • ドッカーにログイン
  • ファイルを作成および編集するための Visual Studio Code または任意のエディター

Dockerfile の作成

  • Elasticsearch のインストールをカスタマイズするために必要なすべての手順をセットアップする、拡張子なしの Dockerfile という名前の新しいファイルを作成します。
  • 使用するバージョンを決定します。たとえば、8.7.0 を使用します。
  • 最初の行は次のようになります。
From docker.elastic.co/elasticsearch/elasticsearch:8.7.0 as elasticsearch
  • synonyms ファイルを追加します。 synonyms_path は、Dockerfile があるフォルダーと同じフォルダーにある synonyms ファイルを含むホスト内のフォルダーへのパスである必要があります。
ADD ./{synonyms_path}/ /usr/share/elasticsearch/config/
VOLUME ["/usr/share/elasticsearch/config/"]
  • 構成の追加 - config_path は、Dockerfile があるフォルダーと同じフォルダーにある構成ファイルを含む、ホスト内のフォルダーのパスである必要があります。
ADD ./{config_path}/ /usr/share/elasticsearch/config/
VOLUME ["/usr/share/elasticsearch/config/"]
  • プラグインの追加 - plugins_path は、Dockerfile があるフォルダーと同じフォルダーにあるプラグインを含む、ホスト内のフォルダーへのパスである必要があります。
ADD ./{plugins_path}/ /usr/share/elasticsearch/plugins/
VOLUME ["/usr/share/elasticsearch/plugins/"]

: すべてのプラグインは、使用している同じバージョンの Elasticsearch 用に構築する必要があります: 8.7.0

  • Elasticsearch ポートを公開します。
EXPOSE 9200

次のような Dockerfile が必要です。

Dockerfile

From docker.elastic.co/elasticsearch/elasticsearch:8.7.0 as elasticsearch

ADD ./{synonyms_path}/ /usr/share/elasticsearch/config/
VOLUME ["/usr/share/elasticsearch/config/"]

ADD ./{config_path}/ /usr/share/elasticsearch/config/
VOLUME ["/usr/share/elasticsearch/config/"]

ADD ./{plugins_path}/ /usr/share/elasticsearch/plugins/
VOLUME ["/usr/share/elasticsearch/plugins/"]

EXPOSE 9200

2 つのオプションがあります。docker 構成ファイルを作成するか、次のコマンドを実行してイメージをビルドします。

docker build . -f Dockerfile -t elasticsearch

次のコマンドでコンテナを起動します。

docker run -p 9200:9200 elasticsearch

docker compose を使用する場合は、次のテキストを含む Dockerfile と同じフォルダーに docker-compose.yaml という新しいファイルを作成する必要があります。

docker-compse.yaml

version: "3.4"
networks:
    internal-network:
        driver: bridge
services:
  elasticsearch:
    image: elasticsearch
    container_name: elasticsearch
    networks:
        - internal-network
    build:
      context: .
      dockerfile: Dockerfile
      target: elasticsearch
    ports:
        - 9200:9200
    environment:
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"

コンテナーを開始するには、docker-compose ファイルを含むフォルダーで次のコマンドを実行します。

docker compose up

これで、Elasticsearch がコンピューターのコンテナーで実行されます。

docker save コマンドを使用してこのイメージを保存し、docker load を使用して他のコンピューターにインストールすることもできます。

おすすめ

転載: blog.csdn.net/UbuntuTouch/article/details/130453705