13.6 Elasticsearch
Elasticsearch是一个基于Lucene的开源搜索服务器,主要基于Java实现。它提供了一个分布式的,多租户的全文搜索引擎,内含RESTful web接口。

Elasticsearch提供了实时的分布式数据存储和分析查询功能,很容易扩展到上百台服务器,支持处理PB级结构化或非结构化数据。配合Logstash、Kibana等组件,可以快速构建一套对日志消息的分析平台。
可以使用官方镜像,快速运行Elasticsearch容器:
- $ docker run -d elasticsearch
- 937c1cb21b39a322ab6c5697e31af22a5329f08408d40f64e27465fed6597e34
也可以在启动时传入一些额外的配置参数:
- $ docker run -d elasticsearch elasticsearch -Des.node.name="TestNode"
- 2c0ae96f73ca01779c60f7c6103481696c34c510266f5c503610a2640dc6f50a
目前使用的镜像内含默认配置文件,包含了预先定义好的默认配置。如果用户要使用自定义配置,可以使用数据卷,挂载自定义配置文件至/usr/share/elasticsearch/config:
- $ docker run -d -v "$PWD/config":/usr/share/elasticsearch/config elasticsearch
- 43333bfdbbfe156512ba9786577ca807c676f9a767353222c106453020ac7020
如果需要数据持久化,可以使用数据卷指令,挂载至/usr/share/elasticsearch/data:
- $ docker run -d -v "$PWD/esdata":/usr/share/elasticsearch/data elasticsearch
- 3feddf6a8454534b209b32df06c2d65022d772a8f511593371218f6bd064e80e
此镜像会暴露9200 9300两个默认的HTTP端口,可以通过此端口进行服务访问。9200端口是对外提供服务的API使用的端口。9300端口是内部通信端口,这些通信包括心跳,集群内部信息同步。
