Elastic Search 安装部署最全教程(Docker)

2023-11-16

一、部署单点ES

1. 首先创建网络 

 因为我们还需要部署kibana容器,因此需要让es和kibana容器互联。这里先创建一个网络:

docker network create es-net

 2. 加载镜像

docker pull elasticsearch:7.12.1
docker pull kibana:7.12.1

这个elasticsearch镜像体积非常大,接近1G。

3.运行容器

1)部署elasticsearch

docker run -d \
	--name es \
    -e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \
    -e "discovery.type=single-node" \
    -v es-data:/usr/share/elasticsearch/data \
    -v es-plugins:/usr/share/elasticsearch/plugins \
    --privileged \
    --network es-net \
    -p 9200:9200 \
    -p 9300:9300 \
elasticsearch:7.12.1

命令解释:

  • -e "cluster.name=es-docker-cluster":设置集群名称
  • -e "http.host=0.0.0.0":监听的地址,可以外网访问
  • -e "ES_JAVA_OPTS=-Xms512m -Xmx512m":内存大小
  • -e "discovery.type=single-node":非集群模式
  • -v es-data:/usr/share/elasticsearch/data:挂载逻辑卷,绑定es的数据目录
  • -v es-logs:/usr/share/elasticsearch/logs:挂载逻辑卷,绑定es的日志目录
  • -v es-plugins:/usr/share/elasticsearch/plugins:挂载逻辑卷,绑定es的插件目录
  • --privileged:授予逻辑卷访问权
  • --network es-net :加入一个名为es-net的网络中
  • -p 9200:9200:端口映射配置

firewall-cmd --zone=public --add-port=9200/tcp --permanent   # 开放端口

firewall-cmd --reload   # 配置立即生效

firewall-cmd --zone=public --list-ports  # 查看防火墙所有开放的端口

 随后便可以去访问IP:9200,结果如图:

2)接下来部署kibana

docker run -d \
--name kibana \
-e ELASTICSEARCH_HOSTS=http://es:9200 \
--network=es-net \
-p 5601:5601  \
kibana:7.12.1
  • --network es-net :加入一个名为es-net的网络中,与elasticsearch在同一个网络中

  • -e ELASTICSEARCH_HOSTS=http://es:9200":设置elasticsearch的地址,因为kibana已经与elasticsearch在一个网络,因此可以用容器名直接访问elasticsearch

  • -p 5601:5601:端口映射配置

kibana启动一般比较慢,需要多等待一会,可以通过命令:

docker logs -f kibana

查看运行日志,当查看到下面的日志,说明成功:

也可以浏览器访问:

 kibana中提供了一个DevTools界面:

 这个界面中可以编写DSL来操作elasticsearch。并且对DSL语句有自动补全功能。

 二、安装IK分词器

# 进入容器内部
docker exec -it es bash

 

# 进入bin目录

cd /usr/share/elasticsearch/bin

 

# 在线下载并安装

./elasticsearch-plugin  install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.12.1/elasticsearch-analysis-ik-7.12.1.zip
  
  

#退出
exit

 
#重启容器
docker restart es

IK分词器包含两种模式:

  • ik_smart:最少切分
  • ik_max_word:最细切分

三、部署es集群

部署es集群可以直接使用docker-compose来完成,不过要求你的Linux虚拟机至少有4G的内存空间,首先编写一个docker-compose文件,内容如下:

version: '2.2'
services:
  es01:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.12.1
    container_name: es01
    environment:
      - node.name=es01
      - cluster.name=es-docker-cluster
      - discovery.seed_hosts=es02,es03
      - cluster.initial_master_nodes=es01,es02,es03
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - data01:/usr/share/elasticsearch/data
    ports:
      - 9200:9200
    networks:
      - elastic
  es02:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.12.1
    container_name: es02
    environment:
      - node.name=es02
      - cluster.name=es-docker-cluster
      - discovery.seed_hosts=es01,es03
      - cluster.initial_master_nodes=es01,es02,es03
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - data02:/usr/share/elasticsearch/data
    networks:
      - elastic
  es03:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.12.1
    container_name: es03
    environment:
      - node.name=es03
      - cluster.name=es-docker-cluster
      - discovery.seed_hosts=es01,es02
      - cluster.initial_master_nodes=es01,es02,es03
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - data03:/usr/share/elasticsearch/data
    networks:
      - elastic
 
volumes:
  data01:
    driver: local
  data02:
    driver: local
  data03:
    driver: local
 
networks:
  elastic:
    driver: bridge

 运行' docker-compose '调出集群:

docker-compose up

https://blog.csdn.net/yueyue763184/article/details/128138329

文章知识点与官方知识档案匹配,可进一步学习相关知识
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Elastic Search 安装部署最全教程(Docker) 的相关文章

随机推荐

  • ESP32-C3 应用程序的启动流程

    网上说明一大堆 基本是官网文档复制没有额外解释 对于ESP32 C3的 risc v 内核 是我选择他的原因之一 了解芯片上电后的启动流程 有利于我们更加深入理解芯片 目录 前言 一 应用程序启动阶段 1 1 app main c 1 2
  • [1215]小米手机USB安装出现当前设备已被临时限制

    小米系列手机 开发者版本 之 USB安装出现当前设备已被临时限制 USB安装出现当前设备已被临时限制 3 2 解决方案 1 更换SIM卡 更换小米账号 2 重新启动手机 即可解决 实战分析 SIM卡数据异常 触发限制代码 3 2 USB安装
  • Uncaught Error: useNavigate() may be used only in the context of a <Router> component.

    出现此问题的原因是因为使用useNavigate的模块没有被react的路由所包围 导致路由并不能在这个层面上使用 解决办法有两种 一 将这个模块被路由模块包围 export default memo gt return
  • React-Router实战:NavLink

    基础 1 引入使用 import NavLink from react router dom
  • rs232接口_串口,COM口,TTL,RS232,RS485,UART的区别详解

    在电路设计或者实际应用过程中 我们往往会遇到下面几种接口 在下面文章中我们详细介绍串口 COM口 RRL RS232 UART几种接口之间的区别与联系以及常见的连接使用方式 串口 串口 即串行接口 与之相对应的另一种接口叫并口 并行接口 两
  • 树莓派做无线网络服务器,树莓派做无线热点

    虽然之前我们使用树莓派成功刷入 OpenWrt 来做路由器使用 不过娱乐性却显得比较单一 无法方便地安装其他各种软件 从源码编译也会更加麻烦 经常是缺少各种头文件 因此 今天我们决定使用官方的 Raspbian 系统来设置树莓派作为一个无线
  • 学习编程过程中-->遇到的错误

    文章目录 学习编程过程中 gt 遇到的错误 吕招焕 1 java sql SQLException Parameter index out of range 2 gt number of parameters which is 1 详情如下
  • 使用 Blazor 开发内部后台(二):了解 Blazor 组件

    James 转载技术社区中一位朋友最新的文章 介绍自己为公司的 WebForm 遗留系统使用 Blazor 重写前端 UI 的经历 什么是Blazor组件 Blazor 应用是使用 Razor 组件构建的 组件是用户界面 UI 的自包含部分
  • 题目 1548: [蓝桥杯][算法提高VIP]盾神与砝码称重

    时间限制 1Sec 内存限制 128MB 提交 782 解决 331 题目描述 有一天 他在宿舍里无意中发现了一个天平 这 个天平很奇怪 有n个完好的砝码 但是没有游码 盾神为他的发现兴奋不已 于是他准备去称一称自己的东西 他准备好了m种物
  • 矩阵树定理

    启蒙 http zhengruioi com contest 1416 T1 T2的10分暴力 后面是论文科技 不搞了 https www luogu com cn problem P6178 O n 3
  • 你不知道的javascript之函数作用域和块作用域(一)

    立即执行函数表达式 IIFE 1 使用匿名函数表达式 var a 2 function IIFE var a 3 console log a 3 console log a 2 2 当作函数调用并传递参数进去 var a 2 functio
  • 机器学习总结

    目录 一 连续特征的离散化 在什么情况下将连续的特征离散化之后可以获得更好的效果 二 LabelEncoder和OneHotEncoder 在特征工程中的应用 三 神经网络 深度学习 四 反向传播与梯度下降 五 聚类算法 六 机器学习 样本
  • python+Opencv数字图像处理入门到精通

    1 环境配置 在python 3 4 2 之后 一些算法被申请了专利 可能不能在使用 因此 建议使用的版本为 3 4 1 15或3 4 0 15 在Anaconda下安装opencv需要执行如下两个指令 pip install opencv
  • "免费!中文!10个最佳Python学习网站推荐

    分享资料 一起学习 我是小白 微信 tlxx233 备注 888建了个微信程序员学习群 互相解答问题 有需要的同学可以加我微信进群 10个免费学习 Python 的中文网站 如果你想要学习 Python 那么这篇文章将会介绍 10 个免费的
  • Linux和Windows下使用Syslog库

    本文档描述如何在Windows和Linux下使用Syslog库 在Linux下GNU库中已经自带有syslog库 但是在Windows下的标准库中没有syslog库 从网上可以找到syslog的开源代码实现 接口函数基本上与Linux一致
  • 高精度运算c++

    高精度运算c 前言 加法 减法 乘法 除法 求余 全部代码 完 前言 采用c 的stl库实现高精度的加减乘除 以及求余运算 希望可以帮助到大家 加法 string add big string a string b string 加 str
  • String和基本数据类型的比较方式

    package com test author xlj 简单的比较方式 public class Test public static void main String args System out println 192 168 101
  • springboot项目启动时:Failed to retrieve application JMX service URL

    application properties配置有问题 检查即可
  • Cannot find any provider supporting AES/CBC/PKCS5Padding

    1 出现的问题 java lang RuntimeException java security NoSuchAlgorithmException Cannot find any provider supporting AES CBC PK
  • Elastic Search 安装部署最全教程(Docker)

    一 部署单点ES 1 首先创建网络 因为我们还需要部署kibana容器 因此需要让es和kibana容器互联 这里先创建一个网络 docker network create es net 2 加载镜像 docker pull elastic