我们这里是采用MobaX远程连接工具,通过SFTP远程文件上传服务将提前下载好的es.tar压缩包上传到虚拟机上(centos7),然后通过docker加载镜像,实现容器化部署,下面我们来看详细步骤

🏍️🏍️🏍️第一部分:ES部署

㊙️㊙️㊙️步骤1:由于后续我们还要安装ES的图形化工具Kibana,而kibana必须和es部署在同一个网络中,所以我们先使用docker创建一个网络,如下图所示创建成功后会出现一行字符串

docker network create es-net

在这里插入图片描述

㊙️㊙️㊙️步骤2:通过远程文件上传服务上传es压缩包到MobaX
在这里插入图片描述

㊙️㊙️㊙️步骤3:使用docker load 命令加载镜像

docker load -i /root/es.tar(我这里是根目录,也可以直接写文件名省略路径)

如下图所示,成功加载镜像后会出现下面的一行es的版本号
在这里插入图片描述
㊙️㊙️㊙️步骤4:使用docker run部署es容器(命令如下)

 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

如下图所示,部署成功后会显示一行字符串
在这里插入图片描述
㊙️㊙️㊙️步骤5:查看es容器

docker ps

如下图所示可以看到部署成功,端口是9200,ip是0.0.0.0表示监听所有可用网络
在这里插入图片描述
㊙️㊙️㊙️步骤6:通过windows浏览器访问es

虚拟机ip地址:9200

返回下面的json格式的数据表示es部署成功
在这里插入图片描述

🏍️🏍️🏍️关于部署过程中可能存在的设备空间不足问题的解决方案 主要是为了解决下图所示的报错,这也是本人实战中遇到的问题

图片
㊙️㊙️㊙️步骤1:清楚日志文件中的三大毒瘤
使用下面三行命令清除日志文件中的垃圾,释放空间
图片
㊙️㊙️㊙️步骤2:释放缓存文件和yum残留的垃圾
下面的这两条命令会删除残留的安装包以及系统中的缓存文件
在这里插入图片描述
可以看到已经释放出了1.4G的空间
在这里插入图片描述

㊙️㊙️㊙️步骤3:下载虚拟机磁盘分区工具gparted

 yum --disablerepo=docker-ce-stable install -y gparted

回车开始安装,出现下图内容
图片
在这里插入图片描述

㊙️㊙️㊙️步骤4:输入gparted启动工具
图片

出现下图所示的图形化界面,sda3的挂载点对应的是我的根目录,所以要扩容sda3,因为我的es安装包在根目录下,使用docker load加载镜像要保证有足够的空间,我这里把sda3的空间从8G扩展到了11.8G,如果想要sda2的空间也全部给sda3需要在命令行中先禁用swap分区,因为sda2的挂载点是swap,禁用后删除swap分区释放空间,再重新分配给sda3,这里读者感兴趣可以自行研究
图片
㊙️㊙️㊙️步骤5:在gparted中修改分区
修改也简单,右键弹窗选择更改大小
图片

可以拖动滑块占满剩余空间,也可以输入数字分配空间,我这里选择了拖动的方式
图片

修改完成要记得点应用才会生效

图片

然后再去docker load加载镜像就不会报错了

🏍️🏍️🏍️第二部分:Kibana部署

重磅来袭————ES的图形化工具神器kibana部署全流程解析
kibana是es的图形化工具,类似于Mysql和Mysql workbench的关系,有了图形化界面工具,我们就可以更直观的看到数据之间的关系,es本身也是数据库,类似于redis和mysql,只不过它主要功能是分布式搜索,今天我们就来学习一下如何在虚拟机上部署kibana
㊙️㊙️㊙️步骤1:通过远程文件上传服务上传kibana压缩包到虚拟机
图片

㊙️㊙️㊙️步骤2:加载kibana镜像

docker load -i kibana.tar

图片

㊙️㊙️㊙️步骤3:创建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必须和es部署在同一个网络中,因此我们在部署es时创建了一个网络叫es-net,因此这里kibana的容器参数的网络配置也要设置成es-net,而且版本号也必须一致,为7.12.1。
容器部署成功会显示类似下图的一行字符串
图片

㊙️㊙️㊙️步骤4:查看kibana容器

docker ps

在这里插入图片描述

可以看到之前部署的es和我们刚刚部署的kibana都已经存在于容器中,es的端口号是9200,kibana的端口号是5601
图片

㊙️㊙️㊙️步骤5:查看kibana日志文件确认kibana是否启动成功

docker logs -f kibana

如下图,日志信息很多,但只要看到红框中的内容则表示kibana启动成功

在这里插入图片描述

㊙️㊙️㊙️步骤6:浏览器查看kibana界面

虚拟机ip:5601

回车就可以看到kibana的界面
在这里插入图片描述

㊙️㊙️㊙️步骤7:想es发送请求验证

这个步骤模拟的就是类似于在Mysql中输入SELECT查询语句会返回对应结果一样,开篇已经说到es本质也是数据库,而由于kibana和es部署在同一个网络下,所以kibana就可以获取到es中的数据

点击步骤6右上角的dev tools然后点击下方的三角就会成功返回响应数据

图片

然后我们通过get /就可以查询到前面部署es时返回的json数据,如下图所示
图片

Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐