DockerでElasticsearchをローカルで実行する
本手順は本番環境でのデプロイメントには使用しないでください
このページの手順はローカル開発専用です。これらの手順を本番環境で使用しないでください。なぜなら、セキュリティが確保されていないからです。このアプローチは、実験や学習には便利ですが、本番環境でElasticsearchをこの方法で実行することは決してありません。
ローカル開発またはテストのためにDockerでElasticsearchを迅速にセットアップしたい場合は、このチュートリアルに従ってください。
このチュートリアルにはKibanaのインストール手順も含まれています。KibanaのUIにアクセスする必要がない場合は、その手順をスキップできます。
前提条件
Dockerがインストールされていない場合は、Docker Desktopをダウンロードしてインストールしてください。
環境変数を設定する
次の環境変数を設定します。
export ELASTIC_PASSWORD="<ES_PASSWORD>" # password for "elastic" username
export KIBANA_PASSWORD="<KIB_PASSWORD>" # Used _internally_ by Kibana, must be at least 6 characters long
Dockerネットワークを作成する
ElasticsearchとKibanaの両方を実行するには、Dockerネットワークを作成する必要があります:
docker network create elastic-net
Elasticsearchを実行する
次のコマンドでElasticsearchコンテナを起動します:
docker run -p 127.0.0.1:9200:9200 -d --name elasticsearch --network elastic-net \
-e ELASTIC_PASSWORD=$ELASTIC_PASSWORD \
-e "discovery.type=single-node" \
-e "xpack.security.http.ssl.enabled=false" \
-e "xpack.license.self_generated.type=trial" \
docker.elastic.co/elasticsearch/elasticsearch:8.15.2
Kibanaを実行する(オプション)
Kibanaを実行するには、最初にElasticsearchコンテナ内でkibana_system
パスワードを設定する必要があります。
# ESコンテナ内でKibanaパスワードを設定する
curl -u elastic:$ELASTIC_PASSWORD \
-X POST \
http://localhost:9200/_security/user/kibana_system/_password \
-d '{"password":"'"$KIBANA_PASSWORD"'"}' \
-H 'Content-Type: application/json'
次のコマンドでKibanaコンテナを起動します:
docker run -p 127.0.0.1:5601:5601 -d --name kibana --network elastic-net \
-e ELASTICSEARCH_URL=http://elasticsearch:9200 \
-e ELASTICSEARCH_HOSTS=http://elasticsearch:9200 \
-e ELASTICSEARCH_USERNAME=kibana_system \
-e ELASTICSEARCH_PASSWORD=$KIBANA_PASSWORD \
-e "xpack.security.enabled=false" \
-e "xpack.license.self_generated.type=trial" \
docker.elastic.co/kibana/kibana:8.15.2
Kibanaにアクセスする際は、elastic
をユーザー名として使用し、ELASTIC_PASSWORD
環境変数に対して以前に設定したパスワードを使用します。
サービスはトライアルライセンスで開始されます。トライアルライセンスは、30日間のトライアル期間中にElasticsearchのすべての機能を有効にします。トライアル期間が終了すると、ライセンスは基本ライセンスにダウングレードされ、これは永遠に無料です。
言語クライアントを使用してElasticsearchに接続する
言語クライアントからElasticsearchクラスターに接続するには、elastic
ユーザー名と環境変数に設定したパスワードを使用して基本認証を行うことができます。
詳細を表示
次の接続詳細を使用します:
- Elasticsearchエンドポイント:
http://localhost:9200
- ユーザー名:
elastic
- パスワード:
$ELASTIC_PASSWORD
(環境変数に設定した値)
例えば、Python elasticsearch
クライアントで接続するには:
Python
import os
from elasticsearch import Elasticsearch
username = 'elastic'
password = os.getenv('ELASTIC_PASSWORD') # Value you set in the environment variable
client = Elasticsearch(
"http://localhost:9200",
basic_auth=(username, password)
)
print(client.info())
基本認証を使用したcurlコマンドの例は次のとおりです:
curl -u elastic:$ELASTIC_PASSWORD \
-X PUT \
http://localhost:9200/my-new-index \
-H 'Content-Type: application/json'
次のステップ
私たちのクイックスタートガイドを使用して、Elasticsearchの基本を学んでください。
本番環境への移行
このセットアップは本番使用には適していません。詳細についてはデプロイメントオプションを参照してください。