LoginSignup
20
23

More than 5 years have passed since last update.

Dockerアドベントカレンダーの18日目の記事です。

参考:http://qiita.com/tukiyo3/items/2fe940455c06323063a1

「Elasticsearchの開発環境をローカルに用意したいな」というのと、「kibana5のDev Tools使いたいな」というと、「Dockerアドベントカレンダー書かねば・・・」というのでやってみました。

環境

Docker for macです。

$ sw_vers
ProductName:    Mac OS X
ProductVersion: 10.12
BuildVersion:   16A323

$ docker -v
Docker version 1.12.5, build 7392c3b

$ docker-compose -v
docker-compose version 1.9.0, build 2585387

Docker Compose

要件としては

  • Elasticsearchに投入したデータをkibanaでみたい
  • kibanaのDev ToolsでElasticsearchにデータ投入したい
  • インデックスデータを消失させたくない

あたりなので最低限の記述にしています。

docker-compose.yml
  elasticsearch:
    image: elasticsearch:5
    ports:
      - "9200:9200"
      - "9300:9300"
    volumes:
      - ./es_data/:/usr/share/elasticsearch/data/
  kibana:
    image: kibana:5
    ports:
      - "5601:5601"
    links:
      - elasticsearch
    environment:
      - ELASTICSEARCH_URL=http://elasticsearch:9200

起動する

docker-compose upで起動すればOKです。

$ docker-compose up
Recreating elasticv5_elasticsearch_1
Recreating elasticv5_kibana_1

Elasticsearchの接続確認

$ curl localhost:9200 
{
  "name" : "JU1uhbk",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "r6__oQDpTc2fUKkNKPohEA",
  "version" : {
    "number" : "5.1.1",
    "build_hash" : "5395e21",
    "build_date" : "2016-12-06T12:36:15.409Z",
    "build_snapshot" : false,
    "lucene_version" : "6.3.0"
  },
  "tagline" : "You Know, for Search"
}

kibanaにアクセスする

http://localhost:5601/app/kibana#/dev_tools/console?_g=()
にアクセスすると、Elasticsearchのコンソール画面が表示されます。

以下のようなクエリを書いてデータ投入します。

PUT dev_tools/test/1
{
  "Name": "John Doe",
  "date": "2016-12-25",
  "message": "This is first content"
}

スクリーンショット 2016-12-26 0.18.19.png
右側にPUTの結果が表示されます。

GET _searchのようなクエリを書くとそのままデータの検索もできます。

スクリーンショット 2016-12-26 0.20.05.png

インデックスデータの場所について

docker-compose.yml./es_data/へインデックス情報を保存するように指定していますので、以下のようになります。

$ tree -L 5
.
├── docker-compose.yml
└── es_data
    └── nodes
        └── 0
            ├── _state
            │   ├── global-6.st
            │   └── node-6.st
            ├── indices
            │   ├── 8KtEjxzpS3qFdYpqinKpJg
            │   ├── 8YEVLUglQNS7t7C1w5yy-w
            │   └── n424EH2uReu9S4GOqUsGzg
            └── node.lock

テストデータを使いまわしたい時って結構あると思うので、弊害を感じるまではマウントさせておくつもりです。
もし不要になった場合はes_dateディレクトリごと消せばよさそうかなと思います。(間違ってたらすみません)

[ハマったメモ]docker-composer.ymlをタブインデントする

タブインデントでymlを書くと、起動時に事故ります。

$ docker-compose up
ERROR: yaml.scanner.ScannerError: while scanning for the next token
found character '\t' that cannot start any token
  in "./docker-compose.yml", line 2, column 1

おまけ:公式Docker Imageリスト

Name URL Version
Logstash https://hub.docker.com/_/logstash/ 5.1.1, 5.1, 5, latest (5/Dockerfile)
5.1.1-alpine, 5.1-alpine, 5-alpine, alpine (5/alpine/Dockerfile)
2.4.1, 2.4, 2 (2.4/Dockerfile)
2.4.1-alpine, 2.4-alpine, 2-alpine (2.4/alpine/Dockerfile)
1.5.6, 1.5, 1 (1.5/Dockerfile)
1.5.6-alpine, 1.5-alpine, 1-alpine (1.5/alpine/Dockerfile)
Elasticsearch https://hub.docker.com/_/elasticsearch/ 5.1.1, 5.1, 5, latest (5/Dockerfile)
5.1.1-alpine, 5.1-alpine, 5-alpine, alpine (5/alpine/Dockerfile)
2.4.3, 2.4, 2 (2.4/Dockerfile)
2.4.3-alpine, 2.4-alpine, 2-alpine (2.4/alpine/Dockerfile)
1.7.6, 1.7, 1 (1.7/Dockerfile)
1.7.6-alpine, 1.7-alpine, 1-alpine (1.7/alpine/Dockerfile)
kibana https://hub.docker.com/_/kibana/ 5.1.1, 5.1, 5, latest (5/Dockerfile)
4.6.3, 4.6, 4 (4.6/Dockerfile)
4.1.11, 4.1 (4.1/Dockerfile)
20
23
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
20
23