Docker Composeで爆速構築!OpenSearch + Dashboards環境構築手順
「OpenSearch、ちょっと触ってみたいな」と思ったとき、環境構築でつまずくのはもったいない。
自分自身も最近、業務で使用する必要が出てきました。
今回は、docker-compose を使って、コマンド一つでOpenSearchとOpenSearch Dashboardsの環境をサクッと構築する手順を備忘として残しておきます。
使用しているファイルなどはこちらで確認できます。
1. docker-compose.yml の準備
まず、作業用のディレクトリを作成し、その中に docker-compose.yml という名前で以下のファイルを作成します。 ファイルの内容は、OpenSearch本体(opensearch-node1)と、データを可視化するためのダッシュボード(opensearch-dashboards)の2つのサービスを定義しています。
services:
opensearch-node1:
image: opensearchproject/opensearch:2.15.0
container_name: opensearch-node1
environment:
- cluster.name=opensearch-cluster
- node.name=opensearch-node1
- discovery.seed_hosts=opensearch-node1
- cluster.initial_cluster_manager_nodes=opensearch-node1
- bootstrap.memory_lock=true # along with the memlock settings below, disables swapping
- "OPENSEARCH_JAVA_OPTS=-Xms512m -Xmx512m" # minimum and maximum Java heap size, recommend setting both to 50% of system RAM
- "OPENSEARCH_INITIAL_ADMIN_PASSWORD=MyStrongPassword123!"
ulimits:
memlock:
soft: -1
hard: -1
nofile:
soft: 65536 # maximum number of open files for the OpenSearch user, set to at least 65536 on modern systems
hard: 65536
volumes:
- opensearch-data1:/usr/share/opensearch/data
ports:
- 9200:9200
- 9600:9600 # required for Performance Analyzer
networks:
- opensearch-net
opensearch-dashboards:
image: opensearchproject/opensearch-dashboards:2.15.0
container_name: opensearch-dashboards
ports:
- 5601:5601
expose:
- "5601"
environment:
OPENSEARCH_HOSTS: '["https://opensearch-node1:9200"]'
OPENSEARCH_SSL_VERIFICATIONMODE: none
networks:
- opensearch-net
volumes:
opensearch-data1:
networks:
opensearch-net:簡単な設定解説
opensearch-node1: OpenSearchの本体です。
image:opensearchproject/opensearch:2.15.0を使用します。environment: クラスター名やノード名、初期管理者パスワードなどを設定しています。OPENSEARCH_INITIAL_ADMIN_PASSWORDで設定したパスワードは後で使います。volumes:opensearch-data1という名前付きボリュームをマウントし、コンテナを削除してもデータが消えないようにしています。ports:9200番ポートを外部に公開して、API経由でアクセスできるようにします。
opensearch-dashboards: OpenSearchのデータを可視化・管理するためのツールです。
image:opensearchproject/opensearch-dashboards:2.15.0を使用します。environment: 接続先のOpenSearchホスト(opensearch-node1)を指定しています。ports:5601番ポートを外部に公開し、ブラウザからアクセスできるようにします。
2. コンテナの起動
docker-compose.ymlを保存したディレクトリで、以下のコマンドを実行します。 -dオプションを付けることで、バックグラウンドでコンテナが起動します。
docker-compose up -dコマンド実行後、Dockerイメージのダウンロードとコンテナの起動が始まります。少し時間がかかる場合があります。
3. 動作確認
コンテナが起動したら、正常に動作しているか確認してみましょう。
OpenSearchの確認
ターミナルから以下のcurlコマンドを実行します。 docker-compose.ymlで設定した初期管理者ユーザー(admin)とパスワード(MyStrongPassword123!)でアクセスします。 -kオプションは、自己署名証明書のエラーを無視するためのおまじないです。
curl -k -u 'admin:MyStrongPassword123!' https://localhost:9200以下のようなJSONが返ってくれば、OpenSearchは正常に起動しています。
{
"name" : "opensearch-node1",
"cluster_name" : "opensearch-cluster",
"cluster_uuid" : "...",
"version" : {
"distribution" : "opensearch",
"number" : "2.15.0",
...
},
"tagline" : "The OpenSearch Project: https://opensearch.org/"
}OpenSearch Dashboardsの確認
次に、Webブラウザで以下のURLにアクセスします。
http://localhost:5601

ログイン画面が表示されたら、以下の情報でログインします。
- Username:
admin - Password:
MyStrongPassword123!
ログイン後、ダッシュボードの初期画面が表示されれば成功です。
[OpenSearch Dashboardsのホーム画面の画像]
4. 環境の片付け
確認が終わったら、以下のコマンドで起動したコンテナを停止・削除できます。 作成したボリュームも一緒に削除したい場合は、--volumesオプションを追加してください。
# コンテナの停止と削除
docker-compose down
# ボリュームも一緒に削除する場合
docker-compose down --volumesまとめ
docker-compose.ymlを一度用意してしまえば、docker-compose upコマンドだけでいつでも同じ環境を再現できます。 OpenSearchを学習したり、アプリケーションとの連携を試したりする際に非常に便利です。

