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にデータを追加したり、参照したいと思います。