【Docker基础一】Docker安装Elasticsearch,Kibana,IK分词器

安装elasticsearch 

下载镜像

查看版本:Elasticsearch Guide [8.11] | Elastic

# 下载镜像
docker pull elasticsearch:7.17.16
# 查看镜像是否下载成功
docker images

创建网络

因为需要部署kibana容器,要让es和kibana容器互联

# 创建一个网络:
es-net docker network create es-net 
# 查看本机的网络 
docker network ls
# 删除一个网络
docker network rm es-net

创建容器挂载目录

# 创建挂载目录
mkdir -p /var/lib/docker/volumes/es-data/_data 
mkdir -p /var/lib/docker/volumes/es-plugins 
mkdir -p /var/lib/docker/volumes/es-config 
mkdir -p /var/lib/docker/volumes/kibana-config
# 进入es-config目录
cd /var/lib/docker/volumes/es-config 
# 创建文件
vi elasticsearch.yml 
# 键入‘’中内容: 
‘
 cluster.name: "docker-cluster" network.host: 0.0.0.0
 ’ 
# 进入kibana-config目录
cd /var/lib/docker/volumes/kibana-config
# 创建文件
vi kibana.yml 
# 键入‘’中内容:其中es为es容器名
‘ 
server.host: "0.0.0.0" 
server.shutdownTimeout: "5s" 
elasticsearch.hosts: [ "http://es:9200" ] 
monitoring.ui.container.elasticsearch.enabled: true 
’

注意事项:

1)需要保证要挂载的目录有读写权限,包括要挂载的配置文件。如果没有则用chmod 777命令

2)如果要挂载配置文件,则需要提前把配置文件内容写好,不能为空,否则可能会影响es和kibana运行。

3)如果只挂载到配置文件目录,不准备配置文件,会导致创建容器后没有配置文件报错。

创建并启动容器

docker run -itd --name es -e "ES_JAVA_OPTS=-Xms512m -Xmx512m" -e "discovery.type=single-node" -v /var/lib/docker/volumes/es-data:/usr/share/elasticsearch/data -v /var/lib/docker/volumes/es-plugins:/usr/share/elasticsearch/plugins --privileged --network es-net -p 9200:9200 -p 9300:9300 elasticsearch:7.17.16

注意:后面不要加 /bin/bash

命令解释:

-p 9200:9200

将容器9200端口映射到宿主机的9200端口,以后给ES发Rest API请求走9200

-p 9300:9300

ES在分布式集群状态下,它们节点之间的通信端口

-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 /var/lib/docker/volumes/es-data/_data

挂载逻辑卷,绑定es的数据目录

-v /var/lib/docker/volumes/es-config/elasticsearch.yml

挂载逻辑卷,绑定es的配置文件

-v /var/lib/docker/volumes/es-plugins

挂载逻辑卷,绑定es的插件目录

-–privileged

授予逻辑卷访问权

-–network es-net

加入一个名为es-net的网络中

查看是否启动

docker ps

访问 http://localhost:9200,查看效果

开启es安全验证

# 进入到容器中 
docker exec -it es /bin/bash 
# cd到config目录下修改elasticsearch.yml,并放入以下内容: 
‘ 
# 这俩是跨域配置 
http.cors.enabled: true 
http.cors.allow-origin: "*" 
# 开启X-pack设置密码 
http.cors.allow-headers: 
Authorization xpack.security.enabled: true 
xpack.security.transport.ssl.enabled: true 
’

如果没有vi命令

apt-get update 
apt-get install vim

重启es

docker restart es

再次进入到容器中

# 进入容器 
docker exec -it es /bin/bash 
# 进入bin文件夹
cd bin/ 
# 创建用户,并赋予权限 
./elasticsearch-users useradd gusy -r superuser 
# 以交互的方式设置用户名和密码(记住自己设置的密码) 
./elasticsearch-setup-passwords interactive

重启es容器,再次访问 http://localhost:9200查看效果,此时需要输入密码

docker restart es

安装kibana

下载镜像

重要:与es版本要一致

# 下载镜像
docker pull kibana:7.17.16
# 查看是否下载成功
docker images

启动容器

docker run -itd --name kibana17 -e ELASTICSEARCH_HOSTS=http://es:9200 --network=es-net -p 5601:5601 kibana:7.17.16

命令解释:

-e ELASTICSEARCH_HOSTS=http://es:9200

其中'es'为es容器名称

进入kibana容器

-- 0表示root用户,'kibana17'为kibana容器名称
docker exec -u 0 -it kibana17 /bin/bash

配置容器

容器中执行以下命令

# 进入config目录
cd config 
# 编辑配置文件
vi kibana.yml 
# 键入es的用户名和密码(追加)
‘ 
elasticsearch.username: "gusy" 
elasticsearch.password: "gusy" 
’

重启kibana容器

docker restart kibana17

注意:如果改了配置文件导致重启失败,执行以下命令(逻辑:复制容器配置文件到宿主机,修改正确后重新复制到容器)

# 查看错误日志 
docker logs kibana17 -f 
# 复制配置文件到本地 (前为容器配置文件,后为宿主机目录)
docker cp kibana17:/usr/share/kibana/config/kibana.yml /usr/local/software/temp/ 
# 修改完配置后,再将配置复制到容器(前为宿主机文件,后为容器要替换的容器文件)
docker cp kibana.yml kibana17:/usr/share/kibana/config/kibana.yml 
# 重启容器 
docker restart kibana17

查看效果

访问kibana,http://localhost:5601

安装IK分词器

插件下载

下载链接:要与ES版本一致,下载.zip版本

Releases · medcl/elasticsearch-analysis-ik · GitHub

 插件安装

上传到服务器(windows到linux服务器)

scp .\elasticsearch-analysis-ik-7.17.16.zip root@127.0.0.1:/usr/local/software/temp

进入ES容器,在plugins文件夹下创建ik文件夹

# 进入容器 
docker exec -it es /bin/bash 
# 创建文件夹 
mkdir -p /usr/share/elasticsearch/plugins/ik 
# 退出容器 
exit

将ik.zip文件复制到es容器(前为宿主机文件地址,后为容器地址)

docker cp elasticsearch-analysis-ik-7.17.16.zip es:/usr/share/elasticsearch/plugins/ik

再次进入容器,解压上传的文件

# 进入容器 
docker exec -it es /bin/bash 
# 进入ik文件夹 
cd /usr/share/elasticsearch/plugins/ik/ 
# 解压 
unzip elasticsearch-analysis-ik-7.17.16.zip 
# 删除源文件 
rm -rf elasticsearch-analysis-ik-7.17.16.zip 
# 退出 
exit

重启es

docker restart es

注意:注意在plugins/文件夹下不要有文件,只能有文件夹,否则重启失败,并且重新复制plugins/文件夹也没用,可以尝试以下方法解决。

# 查看es挂载目录 
docker inspect es 
# 找到挂载目录,Mounts下 
# 进入es-plugins挂载的目录,删除掉多余的文件 
cd /var/lib/docker/volumes/es-plugins/_data

查看效果

访问kibana,http://localhost:5601,首页-management-Dev-tools

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/300307.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

2024阿里云优惠_阿里云活动中心

2024年阿里云优惠活动大全,包括阿里云服务器优惠活动清单、配置价格表、域名优惠活动、阿里云建站活动、阿里云优惠代金券免费领取、对象存储OSS活动、企业邮箱优惠、无影云电脑优惠、CDN特惠等等,阿里云百科aliyunbaike.com分享2024阿里云优惠活动大全_…

【JAVA】Iterator 和 ListIterator 有什么区别?

🍎个人博客:个人主页 🏆个人专栏: JAVA ⛳️ 功不唐捐,玉汝于成 目录 前言 在Java中,遍历集合是日常编程中常见的任务,而Iterator和ListIterator作为遍历集合的两个主要接口&#xff0…

MacOS M1/M2 Go Debug 配置

前言 换电脑,Go 环境带来一些麻烦,耽误很多时间,稍作记录。 原始电脑是 Mac 旧款,CPU x86 构型,新电脑 M2,因为旧电脑里本地文件很多,为了简化搬迁,还是用了 Mac 自带的迁移&#x…

[论文阅读] Revisiting Feature Propagation and Aggregation in Polyp Segmentation

[论文地址] [代码] [MICCAI 23] Abstract 息肉的准确分割是筛查过程中有效诊断结直肠癌的关键步骤。 由于能够有效捕获多尺度上下文信息,普遍采用类似UNet 的编码器-解码器框架。 然而,两个主要限制阻碍了网络实现有效的特征传播和聚合。 首先&#xff…

AI教我学编程之C#关键字

AI教我学编程系列学习第三课 — C#关键字 前言重点先知关键字分类保留字上下文关键字 对话AI首遇波澜调整指令第一次第二次第三次直到我提出如下指令 人工智能?阶段总结 知识拓展1、Ecma和ISO是什么?2、System,dllhost.exe,taskmg…

力扣:438. 找到字符串中所有字母异位词 题解

Problem: 438. 找到字符串中所有字母异位词 438. 找到字符串中所有字母异位词 预备知识解题思路复杂度Code其它细节推荐博客或题目博客题目滑动窗口哈希表 预备知识 此题用到了双指针算法中的滑动窗口思想,以及哈希表的运用。c中是unordered_map。如果对此不了解的u…

江科大STM32

目录 STM32简介 STM32简介 我们主要学习的就是STM32的外设。 NVIC:内核里面用于管理中断的设备,比如配置中断优先级这些东西SysTick:内核里面的定时器,主要用来给操作系统提供定时服务的,STM32是可以加入操作系统的&am…

FlinkSQL中【FULL OUTER JOIN】使用实例分析(坑)

Flink版本:flink1.14 最近有【FULL OUTER JOIN】场景的实时数据开发需求,想要的结果是,左右表来了数据都下发数据;左表存在的数据,右表进来可以关联下发(同样,右表存在的数据,左表进…

计算机毕业设计------SSM二手交易网站

项目介绍 该项目分为前后台,前台普通用户角色,后台管理员角色。 管理员主要功能如下: 登陆,商品分类管理,商品管理,商品订单管理,用户管理等功能。 用户角色主要功能如下: 包含以下功能:查看所有商品,用户登陆注册…

2023.12.30周报

目录 摘要 ABSTRACT 一、文献阅读 1、题目 2、摘要 3、创新点 4、文章解读 1、Introduction 2、时间序列的季节趋势表征 3、 季节趋势对比学习框架 4、实验 5、结论 二、ARIMA 一、ARIMA模型的基本思想 二、ARIMA模型的数学表达式 三、差分过程 1、什么是差分…

循环队列的队空队满情况

有题目: 循环队列放在一维数组A[0....M-1]中,end1指向队头元素,end2指向队尾元素的后一个位置。假设队列两端均可进行入队和出队操作,队列中最多能容纳M-1个元素。初始时为空。下列判断队空和队满的条件中,正确的是 …

计算机毕业设计 基于Javaweb的城乡居民基本医疗信息管理系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍:✌从事软件开发10年之余,专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ 🍅文末获取源码联系🍅 👇🏻 精…

逆置算法和数组循环移动算法

元素逆置 概述:其实就是将 第一个元素和最后一个元素交换,第二个元素和倒数第二个元素交换,依次到中间位置。用途:可用于数组的移动,字符串反转,链表反转操作,栈和队列反转等操作。 逆置图解 …

Cadence Editor 关于画PCB相关内容

目录 一 新建PCB文件 二 指定封装库 三 导入网表 四 放置器件 五 绘制板框 六 精准定位 七 原理图与PCB的交互 八 飞线设置 九 层管理 布局布线阶段需要显示的层 十 器件位置相关 1 器件选取的基准点 2 旋转 3 对齐 4 把器件移动到底层或顶层 5 锁定与解锁 6…

【MySQL】事务管理

文章目录 什么是事务为什么会出现事务事务的版本支持事务的提交方式事务的相关演示事务的隔离级别查看与设置隔离级别读未提交(Read Uncommitted)读提交(Read Committed)可重复读(Repeatable Read)串行化&a…

IDEAVsCode常用插件

IDEA&VsCode常用插件 IDEA lombok、mybatisx 插件 Vscode Vetur —— 语法高亮、智能感知、Emmet 等,包含格式化功能, AltShiftF (格式化全文),CtrlK CtrlF(格式化选中代码,两个 Ctrl需…

区间预测 | Matlab实现CNN-LSTM-KDE的卷积长短期神经网络结合核密度估计多变量时序区间预测

区间预测 | Matlab实现CNN-LSTM-KDE的卷积长短期神经网络结合核密度估计多变量时序区间预测 目录 区间预测 | Matlab实现CNN-LSTM-KDE的卷积长短期神经网络结合核密度估计多变量时序区间预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.CNN-LSTM-KDE多变量时间序列区…

Ubuntu无网络解决办法

1.进入root并输入密码 sudo su 2.更新NetworkManager的配置 用vim打开NetworkManager.conf vim /etc/NetworkManager/NetworkManager.conf 将第五行 managedFalse 改为 managedTrue 。 如果本身就是True就不用改了。 3.删除NetworkManager配置 service NetworkManager st…

el-date-picker日期时间选择器限制可选的日期范围

业务场景&#xff1a;需要限制日期时间选择器可选择的日期&#xff0c;有两种模式&#xff0c; 一种是已知范围&#xff0c;只能选已知范围内的日期&#xff0c; 另一种是知道最近天数&#xff0c;只能选今天往前的天数内的日期&#xff0c;超出不能选。 <el-date-picker v-…

Redis反序列化的一次问题

redis反序列化的一次问题 1. 问题描述 springbootredis不少用&#xff0c;但是一直没遇到什么问题&#xff0c;直接代码拷贝上去就用了。这次结合spring-security&#xff0c;将自定义的spring-security的UserDetails接口的实现类SecurityUser&#xff0c;反序列化取出时报错…