首页 > 其他分享 >使用 docker 部署 ElasticSearch 教程

使用 docker 部署 ElasticSearch 教程

时间:2025-01-09 11:22:56浏览次数:1  
标签:容器 教程 network kibana elasticsearch ElasticSearch docker yml

目录

准备镜像

​ 使用 docker 部署 ElasticSearch 需要 2 个镜像:

docker pull elasticsearch:8.17.0
docker pull kibana:8.17.0

[!TIP]

  • 版本号 8.17.0 并非强制要求,而是编写本文档时,用来试验的版本号;实际上只要 kibana 和 elasticsearch 两者的版本没有冲突就行

准备配置文件

docker-compose.yml

​ docker-compose.yml 的具体内容如下所示:

services:
  elasticsearch:
    image: elasticsearch:8.17.0
    container_name: elasticsearch
    restart: unless-stopped
    environment:
      - discovery.type=single-node
      - http.host=0.0.0.0
      - ES_JAVA_OPTS=-Xms512m -Xmx512m
      - ELASTIC_USERNAME=elastic				# 设置管理员用户名
      - ELASTIC_PASSWORD=RVoqcba3F7q			# 设置管理员密码
      - xpack.security.http.ssl.enabled=false	# 设置关闭 SSL(https)
    volumes:
      - ./volumes/elasticsearch/data:/usr/share/elasticsearch/data
      - ./volumes/elasticsearch/plugins:/usr/share/elasticsearch/plugins
      - ./volumes/elasticsearch/logs:/usr/share/elasticsearch/logs
    #   - ./volumes/elasticsearch/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
    ports:
      - "9200:9200"
      - "9300:9300"
    networks:
      - default_network


  kibana:
    image: kibana:8.17.0
    container_name: kibana
    restart: unless-stopped
    volumes:
      - ./volumes/kibana/kibana.yml:/usr/share/kibana/config/kibana.yml
    ports:
      - "5601:5601"
    networks:
      - default_network
    depends_on:
      - elasticsearch

networks:
  default_network:
    external: true

​ 在运行上面的 docker-compose.yml 前,需要先创建 docker network: docker network create default_network

​ 由于 elasticsearch 容器在运行时,容器内部运行进程的用户是 elasticsearch 而非 root 。所以如果是以 root 用户创建了挂载目录并运行 docker-compose ,有可能会使 elasticsearch 容器在运行时出现权限错误等异常。为了解决该问题,大概有以下 2 种解决方案:

  1. 在 docker-compose.yml 中,设置 elasticsearch 的 privileged 为 true ;(不建议在生产环境中使用)
  2. 使用 chmod 命令修改挂载目录的权限

[!TIP]

  • 创建 docker network 并不是必要的步骤,主要是让两个容器处在同一个 docker network 下,以便后续配置 elasticsearch.yml 和 kibana.yml 时,使用容器名替代 IP 地址
  • 这里没有将 elasticsearch.yml 挂载出来,因为会报一些奇奇怪怪的错误

kibana.yml

​ kibana.yml 的具体内容如下所示:

#
# ** THIS IS AN AUTO-GENERATED FILE **
#

# Default Kibana configuration for docker target
server.host: "0.0.0.0"
server.shutdownTimeout: "5s"
elasticsearch.hosts: [ "http://elasticsearch:9200" ]		# 如果 elasticsearch 和 kibana 两个容器处于同一个 docker network 中,可以使用容器名替代 IP
monitoring.ui.container.elasticsearch.enabled: true
i18n.locale: "zh-CN"										# 设置 kibana 为中文界面
elasticsearch.username: "kibana_system"						# 用于和 elasticsearch 通信的用户名
elasticsearch.password: "b0hfLHUcVO5"						# 用于和 elasticsearch 通信的密码
elasticsearch.ssl.verificationMode: none

启动容器

​ 先运行 docker-compose up -d 来启动 2 个容器。

​ 第 1 次启动 elasticsearch 容器需要设置 kibana_system 的密码,所以等待 elasticsearch 启动后,可以通过 elasticsearch 对外暴露的 REST API 来修改密码,即运行下面的命令:

curl -X PUT "http://宿主机IP:9200/_security/user/kibana_system/_password" \
  -u "elastic:RVoqcba3F7q" \
  -H "Content-Type: application/json" \
  -d '{
        "password": "b0hfLHUcVO5"
      }'

​ 在请求完成后,需要重新启动容器: docker-compose restart

​ 在不删除容器挂载目录的情况下,只有第 1 次启动需要重设密码。

标签:容器,教程,network,kibana,elasticsearch,ElasticSearch,docker,yml
From: https://www.cnblogs.com/17hrbeucgn/p/18661788

相关文章

  • DevExpress WinForms 中文教程:Grid View - 列选择器 API
    DevExpressWinForms拥有180+组件和UI库,能为WindowsForms平台创建具有影响力的业务解决方案。DevExpressWinForms能完美构建流畅、美观且易于使用的应用程序,无论是Office风格的界面,还是分析处理大批量的业务数据,它都能轻松胜任!在本教程中,我们将带您了解如何使用DevExpressWinF......
  • 全网最简单、免费的零代码平台一键 Docker 搭建,快速搭建应用
    本文档docker组中使用的镜像已经上传阿里云docker私服,方便安装。第一步:复制下面内容创建docker-compose.ymlservices:qiaoqiaoyun-mysql:image:registry.cn-hangzhou.aliyuncs.com/jeecgdocker/qiaoqiaoyun-mysql:2.0.1environment:MYSQL_ROOT_PA......
  • 2025Centos 7.5 安装docker 最新版
    更新yumyumupdate安装工具包sudoyuminstall-yyum-utils设置镜像源(这里推荐使用网易的或者阿里的镜像源腾讯的好像对最新版本的docker库没有更新)yum-config-manager--add-repohttp://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo安装最新版本的docke......
  • (免费源码)计算机毕业设计必学必看 万套实战教程 java、python、php、node.js、c#、APP
    摘 要随着互联网时代的到来,同时计算机网络技术高速发展,网络管理运用也变得越来越广泛。因此,建立一个B/S结构的中医病案管理系统,会使;中医病案管理系统的管理工作系统化、规范化,也会提高平台形象,提高管理效率。本系统是针对目前中医病案管理系统的实际需求,从实际工作出发,对过......
  • (免费源码)计算机毕业设计必学必看 万套实战教程 java、python、php、node.js、c#、APP
    摘 要随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,志愿服务管理小程序被用户普遍使用,方便用户能够可以随时进行在线查看志愿服务管理的数据信息管理,特开发了志愿服务管理......
  • vue2.0+vue3.0一学就会全套教程【组件注册与组件通信】
    今天出门,物业小姐姐打招呼说今天是腊八节,叫吃一碗腊八粥。今天是腊八节呀,记得小时候每到这个时候已是浓浓的年味了了,如今粥入游子愁肠,便化作无数相思泪,香飘十里,犹未解远乡情。哈喽,大家好,我是鑫阳,今天一起看看Vue组件开发吧!1、为什么使用组件组件(Component)是Vue.js最核心......
  • 《docker基础篇:3.Docker常用命令》包括帮助启动类命令、镜像命令、有镜像才能创建容器
    @目录3.Docker常用命令3.1帮助启动类命令3.2镜像命令3.3有镜像才能创建容器,这是根本前提(下载一个CentOS或者ubuntu镜像演示)3.4容器命令3.4.1新建+启动容器3.4.2列出当前所有正在运行的容器3.4.3退出容器3.4.4启动已停止运行的容器3.4.5重启容器3.4.6停止容器3.4.7强制停止容器3......
  • JavaScript 高级教程
    JavaScript高级教程01、JS高级_准备.mp402、JS高级_数据类型.mp4基本(值)类型String:任意字符串Number:任意的数字boolean:true/falseundefined:undefinednull:null对象(引用)类型object:任意对象Function:一种特别的对象(可以执行)Array:一种特别的对象(数值下标)判断typeofinst......
  • OpenCV安装教程
    在OpenCV官方网站可以下载最新的且完整的源码以及大部分的release版本源码。安装现在,OpenCV使用Git作为版本管理工具,使用Cmake来构建工程。在早些时候,OpenCV开发者使用Subversion作为版本管理工具以及automake来构建工程项。当然,这些日子都一去不复返了。在......
  • Docker更换镜像源(2025.1最新可用镜像,全网最详细)
    文章目录前言可用镜像源汇总换源方法1-临时换源换源方法2-永久换源(推荐)常见问题及对应解决方案补充1.如何测试镜像源是否可用换源速通版(可以直接无脑复制粘贴)前言由于各种网络政策,在国内访问DockerHub速度会非常缓慢,大家一般都会采取更换镜像源的方式来进行加速。......