系列教程丨用 Docker 探索开源软件 —— Elasticsearch(一)
出品丨Docker公司(ID:docker-cn)
编译丨小东
每周一、三、五,与您不见不散!
Docker 的一大优点是可以让您快速使用它来试用应用程序,而无需直接在开发人员的计算机上安装它。如果您不想在自己的计算机上安装 Java 或 erlang 等运行时环境,那么您就可以不安装它们,因为容器封装了所有依赖项,并在删除时可以不留下任何痕迹。今天,我将带来本系列第三篇文章,用 Docker 探索开源软件 —— Elasticsearch,它将给我们一个机会来看看 docker-compose 是如何运用的。
注:为了理解本教程中的命令,我建议您使用 Play with Docker,它可以让您在浏览器中运行文章中涉及到的所有命令。
点击下列文章标题,回顾本系列文章的往期内容:
- 系列教程丨用 Docker 探索开源软件 —— Redis
- 系列教程丨用 Docker 探索开源软件 —— PostgreSQL(一)
- 系列教程丨用 Docker 探索开源软件 —— PostgreSQL(二)
启动一个运行 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.1container_name: elasticsearchenvironment:- cluster.name=docker-cluster- bootstrap.memory_lock=true- "ES_JAVA_OPTS=-Xms512m -Xmx512m"ulimits:memlock:soft: -1hard: -1volumes:- esdata1:/usr/share/elasticsearch/dataports:- 9200:9200networks:- esnetelasticsearch2:image: docker.elastic.co/elasticsearch/elasticsearch:6.4.1container_name: elasticsearch2environment:- cluster.name=docker-cluster- bootstrap.memory_lock=true- "ES_JAVA_OPTS=-Xms512m -Xmx512m"- "discovery.zen.ping.unicast.hosts=elasticsearch"ulimits:memlock:soft: -1hard: -1volumes:- esdata2:/usr/share/elasticsearch/datanetworks:- esnetvolumes:esdata1:driver: localesdata2:driver: localnetworks: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
系列教程丨用 Docker 探索开源软件 —— Elasticsearch(一)相关推荐
- 系列教程丨用 Docker 探索开源软件 —— PostgreSQL(一)
出品丨Docker公司(ID:docker-cn) 编译丨小东 每周一.三.五,与您不见不散! Docker 的一大优点是可以让您快速使用它来试用应用程序,而无需直接在开发人员的计算机上安装它.如果您 ...
- 【Docker系列教程之三】Docker容器是如何工作的
在上一篇的文章中,我给大家主要介绍了一下 Docker 环境的搭建,简单的讲解了一下 Docker 架构,以及用 Docker 命令简单演示了一下如何拉去一个 images 镜像.本篇我们将剖析一下 ...
- 韦东山freeRTOS系列教程之【第十章】软件定时器(software timer)
文章目录 系列教程总目录 概述 10.1 软件定时器的特性 10.2 软件定时器的上下文 10.2.1 守护任务 10.2.2 守护任务的调度 10.2.3 回调函数 10.3 软件定时器的函数 10 ...
- 【CCS仿真系列教程】手把手教你纯软件仿真实现音频滤波
[CCS仿真系列教程]手把手教你纯软件仿真实现音频滤波 事先说明 示例项目下载 示例使用说明 首先用Matlab生成加了噪声的音频 将我的项目弄你的CCS的WorkSpace中 把Matlab生成后的 ...
- 【Docker系列教程之一】docker入门
我们在理解 docker 之前,首先我们得先区分清楚两个概念,容器和虚拟机. 我们用的传统虚拟机如 VMware , VisualBox 之类的需要模拟整台机器包括硬件,每台虚拟机都需要有自己的操作系 ...
- Docker系列教程09-使用Docker Hub管理镜像
为什么80%的码农都做不了架构师?>>> > 原文:<http://www.itmuch.com/docker/09-docker-docker-hub/> ...
- Docker系列教程20-安装Docker Compose
为什么80%的码农都做不了架构师?>>> 原文:http://www.itmuch.com/docker/20-docker-compose-install/ ,转载请说明出处 ...
- OMV搭建系列教程[0] – 最小化安装Debian11
OMV搭建系列教程[1] – Debian9安装OpenMediaVault OMV搭建系列教程[2] – 安装omv-extras OMV搭建系列教程[3] – 共享文件夹SMB设置 OMV搭建系列 ...
- 软件协会发布开源软件与商业软件知识产权报告
日前,中国软件行业协会发布了<有关开放源代码软件与商业软件知识产权的研究报告>(以下简称<研究报告>),明确提出"反对政府直接支持或干预任何形式的软件商业模式 ...
- 干货 :建立软件的经济学分析框架,浅议开源软件的经济学特性(附图解)
人类社会正在加速数字化.一个显而易见的事实是,人们生活.工作的方方面面都离不开各种各样的软件.不久以前,人们还不知道什么是软件:从今往后,软件正在吞噬整个世界[https://a16z.com/201 ...
最新文章
- 2022-2028年中国二次供水设备行业研究及前瞻分析报告
- 设计模式模式游客(Visitor)摘录
- CMB中相关仪器设备和术语
- 用Python玩转微信的正确姿势!
- C语言指针作为函数返回值
- Delphi中TFlowPanel实现滚动条效果
- video自动全屏播放
- osgi框架和spring区别_BATJ面试必会之 Spring 篇(二)
- linux复制文件夹到另一个目录_Linux|一个命令行统计给定目录中有多少个子目录,学浪计划...
- 华为豪投20亿!3年培养100万AI人才,网友不服!
- Django之ORM字段和参数
- make: 'pcs.o' is up to date.问题解决
- JVM监控及诊断工具命令行篇之jhat
- 盘点年度最佳10大顶级绘图软件,满足你99%的图表需求,赶紧收藏
- 形式验证——学习笔记
- Android中一个app启动另一个app的指定activity
- ASA广告投放策略:建立、更新你的关键词库
- 有哪些手机赚钱的副业?
- NOIP2014、2015普及组初赛难点整理
- QuartusII绑定引脚时出现错误:Error: Can‘t place multiple pins assigned to pin location Pin_108 (IOC_X34_Y2_N0)