[Docker] docker-composeでElasticSearchを起動し、データを永続化させる
こんにちは、@yoheiMuneです。
docker-composeを使うと開発環境をサクッと構築できて便利です。今日はdocker-composeでElasticSearchを使う方法をブログに書きたいと思います。
その後、以下のように起動します。
起動したら、先ほどと同じ検索をすると、データが返却される(=再起動でデータが消えていない)ことを確認できます。
最後になりますが本ブログでは、インフラ、サーバー、PHP、Swift、フロントエンド、Python、Node.js、Java、Linux、機械学習、などの技術トピックを発信をしていきます。「プログラミングで困ったその時の、解決の糸口に!」そんな目標でブログを書き続けています。ぜひ、本ブログのRSSやTwitterをフォローして貰えたら嬉しいです ^ ^
最後までご覧頂きましてありがとうございました!
docker-composeを使うと開発環境をサクッと構築できて便利です。今日はdocker-composeでElasticSearchを使う方法をブログに書きたいと思います。
目次
docker-composeでElasticSearchを起動する
docker-composeでElastic Searchを導入するには、まず以下のファイルを作成します。version: '3.3' services: # elastic search. es: image: elasticsearch:6.5.0 ports: - "9200:9200"Dockerで利用可能なElasticSearchのバージョンはelasticsearch - dockerhubにて確認できます。また、docker-composeのversionについては、Compose file versions and upgradingより確認できます。
その後、以下のように起動します。
$ docker-compose up起動が終わると、以下でアクセスできます。
$ curl localhost:9200 { "name" : "9cRm-CK", "cluster_name" : "docker-cluster", "cluster_uuid" : "Wp9InU_2SXKHe-3AaZTL5g", "version" : { "number" : "6.5.0", "build_flavor" : "default", "build_type" : "tar", "build_hash" : "816e6f6", "build_date" : "2018-11-09T18:58:36.352602Z", "build_snapshot" : false, "lucene_version" : "7.5.0", "minimum_wire_compatibility_version" : "5.6.0", "minimum_index_compatibility_version" : "5.0.0" }, "tagline" : "You Know, for Search" }動作確認ができたら、後続の作業のため「Ctrl+C」を押して、起動を停止しておきます。
データを永続化する
以下の手順で、永続化の設定と動作テストを行います。永続化の設定を追加
上記設定の場合、Dockerを停止すると、ElasticSearchのデータも消えてしまいます。永続化するためにはvolumes
設定を追加します。version: '3.3' services: # elastic search. es: image: elasticsearch:6.5.0 ports: - "9200:9200" volumes: - es-data:/usr/share/elasticsearch/data volumes: es-data: driver: local
docker-composeで起動
記述を追加したら起動します。$ docker-compose up別ターミナルを開き、以下のコマンドを実行すると、新しくボリュームが作成されたことが確認できます。
$ docker volume ls docker volume ls DRIVER VOLUME NAME local mywork_es-data
テスト用にデータを追加
ここで、1件データを追加してみます。$ curl -XPOST -H 'Content-Type: application/json' http://localhost:9200/my_index/user -d '{"name":"Yohei"}' {"_index":"my_index","_type":"user","_id":"3VRTuWgBJAPj6DBg009Z","_version":1,"result":"created","_shards":{"total":2,"successful":1,"failed":0},"_seq_no":0,"_primary_term":1}検索すると、追加した内容を確認できます。
$ curl localhost:9200/my_index/user/_search?pretty { "took" : 14, "timed_out" : false, "_shards" : { "total" : 5, "successful" : 5, "skipped" : 0, "failed" : 0 }, "hits" : { "total" : 1, "max_score" : 1.0, "hits" : [ { "_index" : "my_index", "_type" : "user", "_id" : "3VRTuWgBJAPj6DBg009Z", "_score" : 1.0, "_source" : { "name" : "Yohei" } } ] } }
docker-composeの再起動して、データが残っていることを確認
「Ctrl+C」でdocker-composeを停止し、その後に再度docker-compose up
で起動します。起動したら、先ほどと同じ検索をすると、データが返却される(=再起動でデータが消えていない)ことを確認できます。
$ curl localhost:9200/my_index/user/_search?pretty # 結果があり、再起動前と同じものが表示される.これで永続化の対応ができました。
最後に
Dockerやdocker-composeは非常に便利だし、よく使われているので、ぜひキャッチアップしたいなと思う今日この頃です。頑張ろうっと。最後になりますが本ブログでは、インフラ、サーバー、PHP、Swift、フロントエンド、Python、Node.js、Java、Linux、機械学習、などの技術トピックを発信をしていきます。「プログラミングで困ったその時の、解決の糸口に!」そんな目標でブログを書き続けています。ぜひ、本ブログのRSSやTwitterをフォローして貰えたら嬉しいです ^ ^
最後までご覧頂きましてありがとうございました!