DockerでElasticSearchを試す1

DockerでElasticSearchを使って見ます。

環境

  • macOS High Sierra
  • Dockerはインストール済み

↓Dockerのバージョン

[develop30@develop30-no-iMac: ~]$ docker version
Client:
 Version:      18.03.1-ce
 API version:  1.37
 Go version:   go1.9.5
 Git commit:   9ee9f40
 Built:        Thu Apr 26 07:13:02 2018
 OS/Arch:      darwin/amd64
 Experimental: false
 Orchestrator: swarm

Server:
 Engine:
  Version:      18.03.1-ce
  API version:  1.37 (minimum version 1.12)
  Go version:   go1.9.5
  Git commit:   9ee9f40
  Built:        Thu Apr 26 07:22:38 2018
  OS/Arch:      linux/amd64
  Experimental: true

Docker自体は、「Docker for Mac」でインストールします。
Docker for Macは、dmgファイルをダウンロードしてアプリケーションに登録するだけなので、簡単に導入できます。(アカウントの作成は必要)

ElasticSearchのイメージをダウンロード

公式のガイドに素直に従います。

まずは、docker pull。イメージを取得します。

[develop30@develop30-no-iMac: ~/dev/docker/tuto]$ docker pull docker.elastic.co/elasticsearch/elasticsearch:6.3.2
6.3.2: Pulling from elasticsearch/elasticsearch
7dc0dca2b151: Pull complete
72d60ff53590: Pull complete
ca55c9f7cc1f: Pull complete
822d6592a660: Pull complete
22eceb1ece84: Pull complete
30e73cf19e42: Pull complete
f05e800ca884: Pull complete
3e6ee2f75301: Pull complete
Digest: sha256:8f06aecf7227dbc67ee62d8d05db680f8a29d0296ecd74c60d21f1fe665e04b0
Status: Downloaded newer image for docker.elastic.co/elasticsearch/elasticsearch:6.3.2

そして、docker run。コンテナーを起動します。

[develop30@develop30-no-iMac: ~/dev/docker/tuto]$ docker run -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:6.3.2
OpenJDK 64-Bit Server VM warning: Option UseConcMarkSweepGC was deprecated in version 9.0 and will likely be removed in a future release.
[2018-07-26T07:36:57,376][INFO ][o.e.n.Node               ] [] initializing ...
[2018-07-26T07:36:57,470][INFO ][o.e.e.NodeEnvironment    ] [TdXciWZ] using [1] data paths, mounts [[/ (overlay)]], net usable_space [53.3gb], net total_space [58.4gb], types [overlay]
[2018-07-26T07:36:57,471][INFO ][o.e.e.NodeEnvironment    ] [TdXciWZ] heap size [1007.3mb], compressed ordinary object pointers [true]
[2018-07-26T07:36:57,476][INFO ][o.e.n.Node               ] [TdXciWZ] node name derived from node ID [TdXciWZkQwetpFht9fCT_A]; set [node.name] to override
[2018-07-26T07:36:57,477][INFO ][o.e.n.Node               ] [TdXciWZ] version[6.3.2], pid[1], build[default/tar/053779d/2018-07-20T05:20:23.451332Z], OS[Linux/4.9.87-linuxkit-aufs/amd64], JVM["Oracle Corporation"/OpenJDK 64-Bit Server VM/10.0.2/10.0.2+13]
[2018-07-26T07:36:57,477][INFO ][o.e.n.Node               ] [TdXciWZ] JVM arguments [-Xms1g, -Xmx1g, -XX:+UseConcMarkSweepGC, -XX:CMSInitiatingOccupancyFraction=75, -XX:+UseCMSInitiatingOccupancyOnly, -XX:+AlwaysPreTouch, -Xss1m, -Djava.awt.headless=true, -Dfile.encoding=UTF-8, -Djna.nosys=true, -XX:-OmitStackTraceInFastThrow, -Dio.netty.noUnsafe=true, -Dio.netty.noKeySetOptimization=true, -Dio.netty.recycler.maxCapacityPerThread=0, -Dlog4j.shutdownHookEnabled=false, -Dlog4j2.disable.jmx=true, -Djava.io.tmpdir=/tmp/elasticsearch.MA0qhbmL, -XX:+HeapDumpOnOutOfMemoryError, -XX:HeapDumpPath=data, -XX:ErrorFile=logs/hs_err_pid%p.log, -Xlog:gc*,gc+age=trace,safepoint:file=logs/gc.log:utctime,pid,tags:filecount=32,filesize=64m, -Djava.locale.providers=COMPAT, -XX:UseAVX=2, -Des.cgroups.hierarchy.override=/, -Des.path.home=/usr/share/elasticsearch, -Des.path.conf=/usr/share/elasticsearch/config, -Des.distribution.flavor=default, -Des.distribution.type=tar]
・
・

ElasticSearchにアクセスする

起動できているか確かめます。
ヘルスチェック を見ましょう。
ElasticSearchはWEBインタフェースを持っています。ブラウザで次のURLにアクセスします。
http://localhost:9200/_cat/health?v
すると、次のようなデータが表示されます。

epoch      timestamp cluster        status node.total node.data shards pri relo init unassign pending_tasks max_task_wait_time active_shards_percent
1532592286 08:04:46  docker-cluster green           1         1      0   0    0    0        0             0                  -                100.0%

curlコマンドでも大丈夫です。

おわり

DockerでElasticSearchのコンテナーを起動し、ElasticSearchにアクセスしてみました。
次は実際に、ElasticSearchにデータを追加したり、参照したいと思います。