Elasticsearchの振る舞いを気軽に確認したい場合、Docker(compose)で環境を作成すると非常に便利そうだったので、Macのローカルでdocker-composeで動くElasticsearchを構築してみた。
Dockerfile を作成する
ElasticsearchサーバのDockerのイメージを作成する。
日本語を利用する場合には kuromoji をインストールしたほうが良いのでインストールまで行う。
日本語を利用しない場合にはこのコンテナを作成するステップは不要かと思う。
FROM docker.elastic.co/elasticsearch/elasticsearch:7.5.1
RUN elasticsearch-plugin install analysis-kuromoji
docker-compose.yml を作成する
以下のようなファイルを docker-compose.yml
というファイル名で作成する
version: '3'
services:
es01:
build: .
container_name: es01
environment:
- node.name=es01
- discovery.seed_hosts=es02
- cluster.initial_master_nodes=es01,es02
- cluster.name=docker-cluster
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- esdata01:/usr/share/elasticsearch/data
ports:
- 9200:9200
networks:
- esnet
es02:
build: .
container_name: es02
environment:
- node.name=es02
- discovery.seed_hosts=es01
- cluster.initial_master_nodes=es01,es02
- cluster.name=docker-cluster
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- esdata02:/usr/share/elasticsearch/data
networks:
- esnet
volumes:
esdata01:
driver: local
esdata02:
driver: local
networks:
esnet:
container を build する
composeファイルがあると以下のコマンドでbuildできる
docker-compose build
Elasticsearch クラスタを起動する
以下のコマンドで起動
docker-compose up -d
done
のような表示が出ればok。
curl経由で動作確認をする
Elasticsearch は 9200
番ポートで起動している。
動作確認のため、以下のようなコマンドを実行する
curl -X GET http://localhost:9200/
エラーにならず、jsonのレスポンスが返ってくれば成功。
かんたんですね
おまけ
docker-composeを停止する場合には
停止(消さない)
docker-compose down
停止(きれいに消す)
docker-compose down --rmi all
でok.