系列教程丨用 Docker 探索开源软件 —— Elasticsearch(一)

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: 今天,我将带来本系列第三篇文章,用 Docker 探索开源软件 —— Elasticsearch,它将给我们一个机会来看看 docker-compose 是如何运用的。

screenshot

出品丨Docker公司(ID:docker-cn)
编译丨小东
每周一、三、五,与您不见不散!


Docker 的一大优点是可以让您快速使用它来试用应用程序,而无需直接在开发人员的计算机上安装它。如果您不想在自己的计算机上安装 Java 或 erlang 等运行时环境,那么您就可以不安装它们,因为容器封装了所有依赖项,并在删除时可以不留下任何痕迹。今天,我将带来本系列第三篇文章,用 Docker 探索开源软件 —— Elasticsearch,它将给我们一个机会来看看 docker-compose 是如何运用的。

注:为了理解本教程中的命令,我建议您使用 Play with Docker,它可以让您在浏览器中运行文章中涉及到的所有命令。

点击下列文章标题,回顾本系列文章的往期内容:


启动一个运行 Elasticsearch 的新容器

如果您只想尝试在单节点中运行 Elasticsearch,那么我们可以使用下面所示的“docker run”命令来实现。

我们公开了 9200 端口(用于 REST API),并使用官方的 elasticsearch 6.4.2 镜像(点击文尾处“阅读原文”下载该镜像)设置单节点集群(使用环境变量)。我还将展示如何使用 volume 来存储索引数据。

docker run -d -p 9200:9200 -e "discovery.type=single-node" \
-v esdata:/usr/share/elasticsearch/data \
docker.elastic.co/elasticsearch/elasticsearch:6.4.2

我们用“curl”运行的所有 Elasticsearch 命令在这个容器上都可以正常工作。但是对于本教程,我将使用“docker-compose”来创建集群。


使用 Docker Compose 创建 Elasticsearch 集群

使用docker-compose,我们可以以YAML格式声明构成应用程序的所有容器。对于每个容器来说,我们还可以配置其应该设置的环境变量、所需的任何 volume 以及定义允许服务相互通信的网络。

如下所示,这是 docker-compose.yml 文件的第一个版本。它定义了一个简单的双节点集群,集群中的每个节点都有一个 volume,这样我们的索引就可以独立于容器而存在,并且可以在升级后继续存在(稍后我们将进行升级)。请注意,我们正在使用的是 Elasticsearch 6.4.1版本。

version: '2.2'
services:
 elasticsearch:
   image: docker.elastic.co/elasticsearch/elasticsearch:6.4.1
   container_name: elasticsearch
   environment:
     - cluster.name=docker-cluster
     - bootstrap.memory_lock=true
     - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
   ulimits:
     memlock:
       soft: -1
       hard: -1
   volumes:
     - esdata1:/usr/share/elasticsearch/data
   ports:
     - 9200:9200
   networks:
     - esnet
 elasticsearch2:
   image: docker.elastic.co/elasticsearch/elasticsearch:6.4.1
   container_name: elasticsearch2
   environment:
     - cluster.name=docker-cluster
     - bootstrap.memory_lock=true
     - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
     - "discovery.zen.ping.unicast.hosts=elasticsearch"
   ulimits:
     memlock:
       soft: -1
       hard: -1
   volumes:
     - esdata2:/usr/share/elasticsearch/data
   networks:
     - esnet
 
volumes:
 esdata1:
   driver: local
 esdata2:
   driver: local
 
networks:
 esnet:

要在本地下载该 compose 文件作为 docker-compose-v1.yml,您可以使用以下命令:

curl https://gist.githubusercontent.com/markheath/f246ec3aa5a3e7493991904e241a416a/raw/c4fa64575bc854e34a2506291bd14033caf5e9b6/docker-compose-v1.yml > docker-compose-v1.yml

现在我们可以使用“docker-compose up”命令启动容器,并创建所有必要的资源,如网络和 volume。 我们使用“-d”让其在后台运行,就像我们使用“docker run”一样:

docker-compose -f docker-compose-v1.yml up -d

检查群集运行状况

我们在其中一个容器上公开了 9200 端口,允许我们使用以下请求来查询集群运行状况:

curl http://localhost:9200/_cluster/health?pretty
相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
相关文章
|
JSON Linux 数据格式
百度搜索:蓝易云【Centos 7 通过 targz 文件安装 Elastic Search 服务教程!】
请注意,本教程提供了基本的安装步骤,并且可以根据实际需求进行定制和配置。如果需要更深入的了解和配置,请参考Elasticsearch官方文档或其他权威资源。
321 0
|
自然语言处理 API 索引
ElasticSearch实战教程PostMan版(超级详细版)
ElasticSearch实战教程PostMan版(超级详细版)
ElasticSearch实战教程PostMan版(超级详细版)
|
5月前
|
存储 自然语言处理 网络协议
【elastic search】下载安装、使用教程
【elastic search】下载安装、使用教程
70 1
|
4月前
|
Java 索引 Spring
教程:Spring Boot中集成Elasticsearch的步骤
教程:Spring Boot中集成Elasticsearch的步骤
|
11月前
|
Java Linux 数据安全/隐私保护
百度搜索:蓝易云【centos7系统安装elasticsearch8.7.0,并设置密码访问教程。】
现在,您已经成功安装并设置密码访问Elasticsearch 8.7.0。您可以使用设置的密码来访问和管理Elasticsearch实例。
212 1
|
5月前
|
搜索推荐 Java 索引
教程:Spring Boot中集成Elasticsearch的步骤
教程:Spring Boot中集成Elasticsearch的步骤
|
自然语言处理 关系型数据库 定位技术
分布式系列教程(35) -ElasticSearch文档映射
分布式系列教程(35) -ElasticSearch文档映射
73 0
|
JSON 自然语言处理 数据格式
分布式系列教程(33) -ElasticSearch DSL语言查询与过滤
分布式系列教程(33) -ElasticSearch DSL语言查询与过滤
197 0
分布式系列教程(32) -ElasticSearch条件查询
分布式系列教程(32) -ElasticSearch条件查询
192 0
|
自然语言处理 搜索推荐 索引
分布式系列教程(31) -ElasticSearch倒排索引
分布式系列教程(31) -ElasticSearch倒排索引
93 0