【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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在生产环境中使用uWSGI来运行Flask应用

安装uwsgi pip install uwsgi -i https://pypi.tuna.tsinghua.edu.cn/simple安装不上则使用以下命令: conda install -c conda-forge uwsgi 当您成功安装uwsgi后,您可以通过以下步骤来测试uwsgi是否安装成功: 创建一个Python脚本&#xff…

强化学习在生成式预训练语言模型中的研究现状简单调研

1. 绪论 本文旨在深入探讨强化学习在生成式预训练语言模型中的应用,特别是在对齐优化、提示词优化和经验记忆增强提示词等方面的具体实践。通过对现有研究的综述,我们将揭示强化学习在提高生成式语言模型性能和人类对话交互的关键作用。虽然这些应用展示…

《A++ 敏捷开发》- 3 克服拖延症

技术总监问:现在我遇到最大的难题就是如何提升下面技术人员的能力,如果他们全都是高手,我就很轻松了,但实际上高手最多只有 1/3,其他都是中低水平。你接触过这么多软件开发团队,有什么好方案? 我…

用PreMaint引领先进的预测性维护

在设备维护领域,预测性维护成为一项利用先进技术和巧妙工具的数据驱动战略。这一战略通过条件监控和数据分析,以主动维护的方式识别潜在的设备缺陷,避免问题升级。高效使用PreMaint预测性维护工具可不仅节省时间和成本,更显著提升…

Java药物不良反应ADR智能监测系统源码

药物不良反应(Adverse Drug Reaction,ADR)是指在使用合格药品时,在正常的用法和用量下出现的与用药目的无关的有害反应。这些反应往往因药物种类、使用方式、个体差异等因素而异,可能导致患者身体不适、病情恶化。 为保…

什么事“网络水军”?他们的违法活动主要有四种形式

我国治理网络水军,包括造谣引流、舆情敲诈、刷量控评、有偿删帖等各类“网络水军”等违法犯罪活动已经许久。 日前,官方召开新闻发布会,公布了相关的一些案件进程,今年已累计侦办相关案件339起,超过历年的全年侦办案件…

深度解析HubSpot数据分析:洞察未来商业趋势

在当今数字化的商业环境中,数据是推动决策和业务增长的关键。作为业内领先的CRM平台,HubSpot不仅为企业提供了高效的客户关系管理工具,同时也成为了数据分析的利器。 1. HubSpot数据分析的核心价值 1.1 洞察客户行为和趋势 HubSpot数据分析…

【野火i.MX6ULL开发板】在MobaXterm平台利用Type-C线串口连接开发板

0、前言 参考文献: http://t.csdnimg.cn/9iRTm http://t.csdnimg.cn/Z0n60 问题:一直识别不出com口, 拟解决思路: 百度网盘重新下载Debian镜像,烧入full版镜像,随便换一下USB插口(电脑主机上…

一个大场景下无线通信仿真架构思路(对比omnet与训练靶场)

2020年分析过omnet的源码,读了整整一年,读完之后收获不小,但是也遗憾的发现这个东西只适合实验室做研究的人用于协议的研发与测试,并不适合大场景(军事游戏等)的应用,因为其固有架构更侧重于每个…

PostGIS学习教程二十:3-D

PostGIS学习教程二十:3-D 注意:本文介绍许多PostGIS2.0及更高版本才支持的功能。 文章目录 PostGIS学习教程二十:3-D一、3-D几何图形二、3-D函数三、N-D索引 一、3-D几何图形 到目前为止,我们一直在处理2-D几何图形(…

remote pdb使用记录

以前代码debug一直用原始的pdb,方便好用。最近接触的代码框架使用了ddp加速训练,导致pdb不好用了。 具体来说,在ddp训练时,用单卡训练,跟非ddp模式是一致的,python -m pdb xxx.py的模式也能正常用pdb。但是…

强化学习的数学原理学习笔记 - Actor-Critic

文章目录 概览:RL方法分类Actor-CriticBasic actor-critic / QAC🟦A2C (Advantage actor-critic)Off-policy AC🟡重要性采样(Importance Sampling)Off-policy PGOff-policy AC 🟦DPG (Deterministic AC) 本…

C#,入门教程(13)——字符(char)及字符串(string)的基础知识

上一篇: C#,入门教程(12)——数组及数组使用的基础知识https://blog.csdn.net/beijinghorn/article/details/123918227 字符串的使用与操作是必需掌握得滚瓜烂熟的编程技能之一!!!!! C#语言实…

python接口自动化测试框架介绍

之前在项目中搞了一套jmeter jenkins git ant接口自动化测试框架,在项目中运行了大半年了,效果还不错, 最近搞了一套requests unittest ddt pymysql BeautifulReport的接口自动化测试框架, 测试用例在yaml文件中&#xff0c…

Java面向对象综合练习(拼图小游戏),用java图形化界面实现拼图小游戏

1. 设计游戏的目的 锻炼逻辑思维能力利用Java的图形化界面,写一个项目,知道前面学习的知识点在实际开发中的应用场景 2. 游戏的最终效果呈现 Hello,各位同学大家好。今天,我们要写一个非常有意思的小游戏 —《拼图小游戏》 我们…

MySQL语法及IDEA使用MySQL大全

在项目中我们时常需要写SQL语句,或简单的使用注解直接开发,或使用XML进行动态SQL之类的相对困难的SQL,并在IDEA中操控我们的SQL,但网上大都图方便或者觉得太简单了,完全没一个涵盖两个方面的讲解。 单表: …

并发程序设计--D11D12进程间通信

概念:就是进程和进程之间交换信息。 常用通信方式 无名管道(pipe) 有名管道 (fifo) 信号(signal) 共享内存映射(mmap) 套接字(socket) 过时的IPC通信方式 System…

如何在iOS手机上查看应用日志

引言 在开发iOS应用过程中,查看应用日志是非常重要的一项工作。通过查看日志,我们可以了解应用程序运行时的状态和错误信息,帮助我们进行调试和排查问题。本文将介绍两种方法来查看iOS手机上的应用日志,并提供相应的操作步骤。 …

文件批量归类,文件归类不再难

在快节奏的现代社会,时间就是金钱。使用【文件批量改名高手】软件,你可以在短时间内完成大量文件的归类工作,大大提高了工作效率。从此告别冗长、繁琐的文件整理过程,让你告别凌乱,让文件归类变得如此简单。 所需工具…