系列教程丨用 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,它可以让您在浏览器中运行文章中涉及到的所有命令。

点击下列文章标题,回顾上期文章内容:


添加 Kibana 和 head 插件

在本文中,我将为一个 Kibana 实例和 Elasticsearch Head 插件的 docker-compose 文件添加几个容器。所以如下所示,这就是我们将要使用的最终“docker-compose.yaml”文件:

version: '2.2'
services:
 elasticsearch:
   image: docker.elastic.co/elasticsearch/elasticsearch:6.4.2
   container_name: elasticsearch
   environment:
     - cluster.name=docker-cluster
     - bootstrap.memory_lock=true
     - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
     - http.cors.enabled=true
     - http.cors.allow-origin=*
     - discovery.zen.minimum_master_nodes=2
   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.2
   container_name: elasticsearch2
   environment:
     - cluster.name=docker-cluster
     - bootstrap.memory_lock=true
     - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
     - "discovery.zen.ping.unicast.hosts=elasticsearch"
     - http.cors.enabled=true
     - http.cors.allow-origin=*
     - discovery.zen.minimum_master_nodes=2
   ulimits:
     memlock:
       soft: -1
       hard: -1
   volumes:
     - esdata2:/usr/share/elasticsearch/data
   networks:
     - esnet
 
 elasticsearch3:
   image: docker.elastic.co/elasticsearch/elasticsearch:6.4.2
   container_name: elasticsearch3
   environment:
     - cluster.name=docker-cluster
     - bootstrap.memory_lock=true
     - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
     - "discovery.zen.ping.unicast.hosts=elasticsearch"
     - http.cors.enabled=true
     - http.cors.allow-origin=*
     - discovery.zen.minimum_master_nodes=2
   ulimits:
     memlock:
       soft: -1
       hard: -1
   volumes:
     - esdata3:/usr/share/elasticsearch/data
   networks:
     - esnet
 
 kibana:
   image: 'docker.elastic.co/kibana/kibana:6.4.2'
   container_name: kibana
   environment:
     SERVER_NAME: kibana.local
     ELASTICSEARCH_URL: http://elasticsearch:9200
   ports:
     - '5601:5601'
   networks:
     - esnet
 
 headPlugin:
   image: 'mobz/elasticsearch-head:5'
   container_name: head
   ports:
     - '9100:9100'
   networks:
     - esnet
 
volumes:
 esdata1:
   driver: local
 esdata2:
   driver: local
 esdata3:
   driver: local
 
networks:
 esnet:

您可以下载我的 YAML 文件

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

现在我们可以再次更新我们的集群

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

尝试 Kibana

完成此操作后,我们可以通过浏览 localhost:5601 访问 Kibana 网站。如果您一直在“Play with Docker”中进行操作,那么您将可以看到每个公开端口(9200、9100和5601)的特殊链接,如下图所示:

screenshot

如果您点击5601链接,您将到达一个 Kibana 的实例。第一步是定义索引模式(例如:“customer *”):

screenshot

然后,如果您访问 discover 选项卡,那么您将看到我们可以使用 Kibana 搜索索引中的文档:

screenshot


尝试 Elasticsearch head 插件

您还可以访问localhost:9100(或在Play with Docker中,单击9100链接)来使用 Elasticsearch head 插件。这为您提供了可视化的群集运行状况:

screenshot

请注意,如果使用 Play with Docker,需要复制端口9200链接并将其粘贴到 Connect 文本框中,以便将 head 插件连接到 Elasticsearch 集群。


清 理

停止并删除所有容器:

docker-compose -f docker-compose-v4.yml down

如果您还想删除卷(这样所有索引数据都将丢失),请添加-v标志:

docker-compose -f docker-compose-v4.yml down -v

总 结

在本教程中,我们看到使用 Docker 运行 Elasticsearch 实例非常容易,我们可以使用它来试验 API。但使用 Docker Compose,我们还可以定义容器间的相互通信,以及启动它们的容器集合。所有这些都很容易用“docker-compose up”实现。

当我们升级 YAML 文件时,Docker Compose 可以智能地决定需要更换哪些容器,哪些容器可以保留原样。

相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
相关文章
|
3月前
|
机器人 网络安全 数据安全/隐私保护
autMan奥特曼机器人-对接Docker版本NTQQ详细教程
本文介绍了如何在服务器上搭建NTQQ机器人,通过官方NTQQ对接各框架,实现QQ登录的稳定运行。文章提到了需要准备一台服务器和相应的软件,并详细描述了通过SSH链接服务器、创建文件夹和配置文件、编辑配置文件地址端口、运行容器等步骤。同时,文章还介绍了VNC连接的使用和配置,以及使用watchtower进行NTQQ的更新。文章总结起来就是在服务器上搭建NTQQ机器人,实现QQ登录的稳定性和自动登录功能,同时提供了更新和维护的方法。
131 3
autMan奥特曼机器人-对接Docker版本NTQQ详细教程
|
2月前
|
缓存 Linux Docker
【最新版正确姿势】Docker安装教程(简单几步即可完成)
之前的老版本Docker安装教程已经发生了变化,本文分享了Docker最新版安装教程,其他操作系统版本也可以参考官 方的其他安装版本文档。
1784 3
【最新版正确姿势】Docker安装教程(简单几步即可完成)
|
2月前
|
关系型数据库 MySQL Java
【Docker最新版教程】一文带你快速入门Docker常见用法,实现容器编排和自动化部署上线项目
Docker快速入门到项目部署,MySQL部署+Nginx部署+docker自定义镜像+docker网络+DockerCompose项目实战一文搞定!
|
3月前
|
Linux Docker 容器
Centos安装docker(linux安装docker)——超详细小白可操作手把手教程,包好用!!!
本篇博客重在讲解Centos安装docker,经博主多次在不同服务器上测试,极其的稳定,尤其是阿里的服务器,一路复制命令畅通无阻。
2528 4
Centos安装docker(linux安装docker)——超详细小白可操作手把手教程,包好用!!!
|
3月前
|
关系型数据库 MySQL Linux
基于阿里云服务器Linux系统安装Docker完整图文教程(附部署开源项目)
基于阿里云服务器Linux系统安装Docker完整图文教程(附部署开源项目)
572 3
|
3月前
|
数据可视化 数据挖掘 Docker
Docker Desktop 安装 ClickHouse 超级简单教程
Docker Desktop 安装 ClickHouse 超级简单教程
67 1
|
3月前
|
定位技术 文件存储 网络架构
Docker部署PhotoPrism、Immich图片管理应用,无需公网IP远程访问教程
除了Synology、QNAP、TerraMaster等品牌的NAS设备内置图库功能,市面上还有多种备受欢迎的第三方应用,如PhotoPrism、Immich、LibrePhotos、Piwigo、Photoview等。这些应用不仅提供强大的图片管理能力,还可通过Docker轻松部署。借助贝锐花生壳服务,即使没有公网IP也能实现远程访问,突破地理限制,提升数据可访问性和安全性,让用户随时随地管理私人图库。
244 1
|
3月前
|
存储 应用服务中间件 nginx
|
4月前
|
NoSQL 关系型数据库 Redis
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
mall在linux环境下的部署(基于Docker容器),docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongodb、minio详细教程,拉取镜像、运行容器
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
|
3月前
|
Linux 开发工具 Docker
各个类linux服务器安装docker教程
各个类linux服务器安装docker教程
77 0

热门文章

最新文章