使用Docker Compose在本地环境中准备Elasticsearch
这是Docker Advent Calendar第18天的文章。
参考: http://qiita.com/tukiyo3/items/2fe940455c06323063a1
参考网址:http://qiita.com/tukiyo3/items/2fe940455c06323063a1。
我想在本地搭建Elasticsearch的开发环境,并且我也想使用kibana5的Dev Tools来实现。为了参加Docker Advent Calendar,我决定尝试一下。
环境
这是用于Mac的Docker。
$ 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 项目
作为要件的话
-
- Elasticsearchに投入したデータをkibanaでみたい
-
- kibanaのDev ToolsでElasticsearchにデータ投入したい
- インデックスデータを消失させたくない
由于实况无法确认,所以只做了最基本的描述。
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即可。
$ 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"
}
当我们编写像GET _search这样的查询时,可以直接进行数据搜索。
关于索引数据的位置。
由于在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镜像清单
NameURLVersionLogstashhttps://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)Elasticsearchhttps://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)
kibanahttps://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)
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)Elasticsearchhttps://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)
kibanahttps://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)