在Docker中使用ElasticSearch服务器

Elasticsearch 使用Lucene为核心, 实现了所有索引和搜索的功能,并通过简单的RESTful API来隐藏Lucene的复杂性,从而让全文搜索变得简单。本文演示通过 Docker 来部署、运行 Elasticsearch。

运行 Elasticsearch 容器

首先,下载 Elasticsearch 镜像。在 Docker Hub 上可以找到 Elasticsearch 官方的镜像,有很多版本,我们在演示中选择 6.8.6 版。

1
docker pull docker.elastic.co/elasticsearch/elasticsearch:6.8.6

整个镜像比较大,955M, 下载的时间比较长。

然后运行以下命令构建并启动容器:

1
docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:6.8.6

启动以后,可以通过浏览器访问进行访问。

1
http://localhost:9200

可以看到显示类似的信息:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
{
"name": "P-ZhMpJ",
"cluster_name": "docker-cluster",
"cluster_uuid": "1lNVQzvxSZOhygEO1mb2-g",
"version": {
"number": "6.8.4",
"build_flavor": "default",
"build_type": "docker",
"build_hash": "bca0c8d",
"build_date": "2019-10-16T06:19:49.319352Z",
"build_snapshot": false,
"lucene_version": "7.7.2",
"minimum_wire_compatibility_version": "5.6.0",
"minimum_index_compatibility_version": "5.0.0"
},
"tagline": "You Know, for Search"
}

开通跨域访问

为了能通过管理插件访问、管理 Elasticsearch, 需要打开实例的跨域访问。

首先,需要登录到容器中,执行以下命令:

1
docker exec -it elasticsearch /bin/bash

登录道容器后,编辑 elasticsearch.yml 配置文件 执行:

1
vi config/elasticsearch.yml

在文件中加入以下的两行配置信息:

1
2
http.cors.enabled: true
http.cors.allow-origin: "*"

然后退出容器,重启容器:

1
docker restart elasticsearch

安装管理插件

首先,拉取插件镜像:

1
docker pull mobz/elasticsearch-head:5

然后执行以下命令启动容器:

1
docker run -d --name elasticsearch-head -p 9100:9100 mobz/elasticsearch-head:5

在浏览器中访问:

1
http://localhost:9100

本文标题:在Docker中使用ElasticSearch服务器

文章作者:晨星

发布时间:2019年10月09日 - 10:10

最后更新:2020年09月16日 - 08:09

原始链接:https://www.mls-tech.info/docker/docker-use-elasticsearch/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。