docker pullしてきたElasticsearchのデフォルト設定を変える方法
dokcer pullでes社が提供するdocker imageを取得することができるがelasticsearch.yml を使いたくない場合がある。
例えばelasticsearchのデフォルトだとport 9200を使ってhttp通信を行うが、複数のESを立ち上げて検証したい場合などはデフォルトportと異なるものを使いたいことがるだろう。
Elasticsearch社の公式ドキュメントには
A. docker runの環境変数として渡す
B. dockerのbind mountを利用してlocalに配置された設定ファイルを読み込む
の二つの方法が提示されている。
ここではBの方法について解説する. 例えばelasticsearchをport 9201で繋げたいときはelasticsearch.ymlに以下のように記述する。
cluster.name: "docker-cluster"
network.host: 0.0.0.0
http.port: 9201
その上で以下のdockerコマンドを実行する.
docker run --mount type=bind,source="$(pwd)"/elasticsearch.yml,target=/usr/share/elasticsearch/config/elasticsearch.yml -d -p 9201:9201 -e "discovery.type=single-node" --name elasticsearch-port-9201 docker.elastic.co/elasticsearch/elasticsearch:6.6.1
注意 : elasticsearch社の公式ドキュメントに書かれているmountの方法は最新のdockerでは古い指定の仕方(>Docker 17.06)となっている.
New users should try --mount syntax which is simpler than --volume syntax. (Docker公式ドキュメントより)
-p 外部からアクセスされるポート番号:コンテナのポート番号を指定
-d バックグラウンド実行
最後に http://localhost:9201/ にアクセスしてresponseが帰ってくるか確認する
この記事が気に入ったらサポートをしてみませんか?