docker安装elasticsearch与head教程完整版—.NET Core Web Api与elasticsearch打造全站全文搜索引擎

默认已经有docker环境
下载与安装 elasticsearch ,从hub.docker里面可以看到最新版本的镜像,选择你想要的版本
本教程是以 7.17.7 为案例,为啥不适用最新的,首先个人一般需用最新的版本,如果有亢很难填,其次我自己的服务器下载的太慢(还是配置了docker加速地址的)拉取几个小时都下载不下来7.17.9版也一样,直接放弃~ 最终挑到了7.17.7
【官方传递】https://hub.docker.com/_/elasticsearch

一、安装、运行 elasticsearch

拉取镜像
docker pull elasticsearch:7.17.7
运行实例

docker run -d --name elasticsearch -p 9200:9200 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms64m -Xmx512m" elasticsearch:7.17.7

访问 ip+9200 出现该界面表示已经安装、运行成功!
在这里插入图片描述

如果没有成功,请看一下docker 运行的日志

docker logs [OPTIONS] CONTAINER OPTIONS说明:
-f : 跟踪日志输出
–since :显示某个开始时间的所有日志
-t : 显示时间戳
–tail : 仅列出最新N条容器日志

为防止重要的数据掉失,我们需要将es重要文件挂载到外部
1.找个存储文件的目录,我这里放置在/usr/docker
在这里插入图片描述

  1. 执行复制容器文件命令
    首先得知道运行的容器信息,执行 docker ps 查看正在运行的实例
    在这里插入图片描述

可通过 docker exec -it 容器id /bin/bash 进入容器内容查看,通过 exit 退出容器内部
在这里插入图片描述

复制容器内容到 /usr/docker 目录
docker cp e3b71d0d624b:/usr/share/elasticsearch /usr/docker
复制完成就可以看到 es的一大推文件
在这里插入图片描述

  1. 删除之前运行的实例,先停止再删除
docker stop  xx
docker rm xxx  
  1. 重新运行实例,命令如下
docker run -d --name es -p 9200:9200 -p 9300:9300 -v /usr/docker/elasticsearch/data:/usr/share/elasticsearch/data -v /usr/docker/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /usr/docker/elasticsearch/logs:/user/share/elasticsearch/logs -v /usr/docker/elasticsearch/plugins:/usr/share/elasticsearch/plugins -v /usr/docker/elasticsearch/backup:/usr/share/elasticsearch/backup -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms64m -Xmx512m" --restart=always elasticsearch:7.17.7

参数部分解释,elasticsearch更多docker相关参数可在hub.docker里面找到
-v xxx:/xx 表示要挂载的目录或文件
-e ES_JAVA_OPTS=“-Xms64m -Xmx512m” 表示最大内存512M,最小内存64M
–restart=always 随docker自动重启 注:这里限制内存 不然小服务器顶不住。

运行成功,可以看到cpu,内存差点爆表,不过不用担心稍会就会降下去。至于为啥会这样目前不太清楚,有大神可以留言,请教一下!感谢好心人!
在这里插入图片描述

在这里插入图片描述

二、安装elasticsearch可视化工具

这里选择了 elasticsearch head
#拉取镜像
docker pull mobz/elasticsearch-head:5
#运行实例
docker run -p 9100:9100 --name elasticsearch-head -d mobz/elasticsearch-head:5
运行成功如下
在这里插入图片描述

虽然运行成功了但可以看到是未连接的状态,就算输入了正确的ip地址还是不能连接,打开F12可以看到是跨域的问题
在这里插入图片描述

解决办法
修改docker中elasticsearch的elasticsearch.yml文件,在最后面加上

http.cors.enabled: true 
http.cors.allow-origin: "*" 

可像我这样找到已经挂载在外部的配置文件,打开修改也可以使用命令随你喜欢~(记得重启服务)
如果没有挂载在外部的可进行容器里面修改(强烈推荐挂载)

docker exec -it 容器id /bin/bash 
vi config/elasticsearch.yml
xxxx
#退出并重启服务
exit
docker restart 容器id

在这里插入图片描述

重启服务后输入正确的ip,可以看到这个界面表明可以了
在这里插入图片描述
最后需要解决elasticsearch-head 面板操作数据时不显示报406的问题,如图打开这些界面发现是空白的而且报错。
在这里插入图片描述

在这里插入图片描述

解决版本 修改_site/vendor.js 文件

6886行 contentType: “application/x-www-form-urlencoded”, 改成
contentType: “application/json;charset=UTF-8”, 7573行 var inspectData =
s.contentType === “application/x-www-form-urlencoded” && 改成 var
inspectData = s.contentType === “application/json;charset=UTF-8” &&

在这里插入图片描述
在这里插入图片描述

你可以选择将文件挂载到外部去,也可以进行容器里面直接修改。
●先把elasticsearch-head的文件挂载到外部去,这里就不详细的贴出来了。
docker cp 0b5e6db9316a:/usr/src/app /usr/docker/eshead
在这里插入图片描述

我这里遇到一个小问题,在查看挂载信息发现文件确实时挂载成功了,但是打开vendor.js发现还是原来的内容这让我很困惑不知道是不是缓存的原因。随后我在url后面加上了版本号发现还是原来的内容 ~~

只能暴力解决了,后面在找个时间看看是什么回事 ~~

从外部复制文件到容器里面
docker cp /usr/docker/eshead/app/_site/vendor.js 容器id:/usr/src/app/_site

重启服务,好了,刷新界面看到这个界面就 ok
在这里插入图片描述

查看挂载信息
docker inspect 容器id

到此我们安装教程已经结束了,下篇将与wep api 对接完成我们的全站搜索功能

附源加速
在这里插入图片描述

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

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

相关文章

三体到底是啥?用Python跑一遍就明白了

文章目录拉格朗日方程推导方程组微分方程算法化求解画图动图绘制温馨提示,只想看图的画直接跳到最后一节拉格朗日方程 此前所做的一切三体和太阳系的动画,都是基于牛顿力学的,而且直接对微分进行差分化,从而精度非常感人&#xf…

如何用Python求解微分方程组

文章目录odeint简介示例odeint简介 scipy文档中将odeint函数和ode, comples_ode这两个类称为旧API,是scipy早期使用的微分方程求解器,但由于是Fortran实现的,尽管使用起来并不方便,但速度没得说,所以有的时候还挺推荐…

Vite4 + Vue3 + vue-router4 动态路由

动态路由,基本上每一个项目都能接触到这个东西,通俗一点就是我们的菜单是根据后端接口返回的数据进行动态生成的。表面上是对菜单的一个展现处理,其实内部就是对router的一个数据处理。这样就可以根据角色权限或者一些业务上的需求&#xff0…

机器学习入门——线性回归

线性回归什么是线性回归?回归分析:线性回归:回归问题求解单因子线性回归简单实例评估模型表现可视化模型展示多因子线性回归什么是线性回归? 回归分析: 根据数据,确定两种或两种以上变量间相互依赖的定量…

自学大数据第六天~HDFS命令(一)

HDFS常用命令 查看hadoop版本 version hadoop version注意,没有 ‘-’ [hadoopmaster ~]$ hadoop version Hadoop 3.3.4 Source code repository https://github.com/apache/hadoop.git -r a585a73c3e02ac62350c136643a5e7f6095a3dbb Compiled by stevel on 2022-07-29T12:3…

【电赛MSP430系列】GPIO、LED、按键、时钟、中断、串口、定时器、PWM、ADC

文章目录MSP430一、GPIO二、点亮LED三、按键控制LED四、更改主时钟五、串口通信六、串口中断七、外部中断八、定时器九、定时器中断十、PWM十一、ADCMSP430 MSP430 是德州仪器(TI)一款性能卓越的超低功耗 16 位单片机,自问世以来&#xff0c…

程序员的逆向思维

前要: 为什么你读不懂面试官提问的真实意图,导致很难把问题回答到面试官心坎上? 为什么在面试结束时,你只知道问薪资待遇,不知道如何高质量反问? 作为一名程序员,思维和技能是我们职场生涯中最重要的两个方面。有时候…

【微信小程序】-- 网络数据请求(十九)

💌 所属专栏:【微信小程序开发教程】 😀 作  者:我是夜阑的狗🐶 🚀 个人简介:一个正在努力学技术的CV工程师,专注基础和实战分享 ,欢迎咨询! &…

到底什么是跨域,如何解决跨域(常见的几种跨域解决方案)?

文章目录1、什么是跨域2、解决跨域的几种方案2.1、JSONP 方式解决跨域2.2、CORS 方式解决跨域(常见,通常仅需服务端修改即可)2.3、Nginx 反向代理解决跨域(推荐使用,配置简单)2.4、WebSocket 解决跨域2.5、…

软测面试了一个00后,绝对能称为是内卷届的天花板

前言 公司前段缺人,也面了不少测试,结果竟然没有一个合适的。一开始瞄准的就是中级的水准,也没指望来大牛,提供的薪资也不低,面试的人很多,但平均水平很让人失望。令我印象最深的是一个00后测试员&#xf…

【JavaScript 逆向】百度旋转验证码逆向分析

声明本文章中所有内容仅供学习交流,相关链接做了脱敏处理,若有侵权,请联系我立即删除!案例目标爱企查百度安全验证百度搜索:aHR0cHM6Ly93YXBwYXNzLmJhaWR1LmNvbS9zdGF0aWMvY2FwdGNoYS8以上均做了脱敏处理,B…

操作系统(2.2)--进程的描述与控制

目录 二、进程的描述 1.进程的定义和特征 1.1进程的定义 1.2进程的特征 2.进程的基本状态及转换 2.1进程的三种基本状态 2.2 三种基本状态的转换 2.3创建状态和中止状态 3.挂起操作和进程状态的转换 3.1 挂起状态的引入 3.2 引入挂起操作后三个进程状态的转换 …

07从零开始学Java之如何正确的编写Java代码?

作者:孙玉昌,昵称【一一哥】,另外【壹壹哥】也是我哦CSDN博客专家、万粉博主、阿里云专家博主、掘金优质作者前言在上一篇文章中,壹哥带领大家开始编写了第一个Java案例,在我们的cmd命令窗口中输出了”Hello World“这…

【蓝桥杯-筑基篇】常用API 运用(1)

🍓系列专栏:蓝桥杯 🍉个人主页:个人主页 目录 🍍1.输入身份证,判断性别🍍 🍍2.输入英语句子,统计单词个数🍍 🥝3.加密解密🥝 🌎4.相邻重复子串…

【6G 新技术】6G数据面介绍

博主未授权任何人或组织机构转载博主任何原创文章,感谢各位对原创的支持! 博主链接 本人就职于国际知名终端厂商,负责modem芯片研发。 在5G早期负责终端数据业务层、核心网相关的开发工作,目前牵头6G算力网络技术标准研究。 博客…

订单30分钟未支付自动取消怎么实现?

目录了解需求方案 1:数据库轮询方案 2:JDK 的延迟队列方案 3:时间轮算法方案 4:redis 缓存方案 5:使用消息队列了解需求在开发中,往往会遇到一些关于延时任务的需求。例如生成订单 30 分钟未支付&#xff0…

HashMap的实际开发使用

目 录 前言 一、HashMap是什么? 二、使用步骤 1.解析一下它实现的原理 ​编辑 2.实际开发使用 总结 前言 本章,只是大概记录一下hashMap的简单使用方法,以及理清一下hashMap的put方法的原理,以及get方法的原理。 一、Has…

如何使用 Python 检测和识别车牌(附 Python 代码)

文章目录创建Python环境如何在您的计算机上安装Tesseract OCR?技术提升磨砺您的Python技能车牌检测与识别技术用途广泛,可以用于道路系统、无票停车场、车辆门禁等。这项技术结合了计算机视觉和人工智能。 本文将使用Python创建一个车牌检测和识别程序。…

【Linux】目录和文件的权限

Linux中的权限有什么作用Linux权限管理文件访问者的分类文件类型和访问权限(事物属性)**文件权限值的表示方法**文件访问权限的相关设置方法chmodchownchgrpumaskumask使用 sudo分配权限目录的权限Linux中的权限有什么作用 Linux下有两种用户&#xff1…

【C缺陷与陷阱】----语义“陷阱”

💯💯💯 本篇处理的是有关语义误解的问题:即程序员的本意是希望表示某种事物,而实际表示的却是另外一种事物。在本篇我们假定程序员对词法细节和语法细节的理解没有问题,因此着重讨论语义细节。导言&#xf…