Centos7 docker下安装elasticsearch、ik、nginx和kibana

安装elasticsearch

下载镜像

docker pull elasticsearch:7.4.2      //安装elasticsearch 
docker pull kibana:7.4.2       //安装kibana

检查是否安装好

docker images

看下虚拟机还有多少内存,内存够用就行

free -m  //available:老师的是389,我的是593都够用

在这里插入图片描述

创建配置文件目录,用于与docker中的配置文件挂载

mkdir -p /mydata/elasticsearch/config     //用于创建外部挂载配置文件
mkdir -p /mydata/elasticsearch/data       //用于创建外部挂载配置文件
echo "http.host: 0.0.0.0" >>  /mydata/elasticsearch/config/elasticsearch.yml    //设置所有机器都可访问本机elasticsearch

启动

docker run --name elasticsearch -p 9200:9200 -p 9300:9300 \
-e "discovery.type=single-node" \
-e ES_JAVA_OPTS="-Xms64m -Xmx128m" \
-v /mydata/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /mydata/elasticsearch/data:/usr/share/elasticsearch/data \
-v /mydata/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
-d elasticsearch:7.4.2

上述命令作用说明:

在虚拟机创建了 elasticsearch 的两个 docker 外部 挂载用文件夹
mkdir -p /mydata/elasticsearch/config
mkdir -p /mydata/elasticsearch/data

写入了一个配置并创建了yml配置文件, 代表可以被远程的任意 机器访问
echo “http.host:0.0.0.0” >> /mydata/elasticsearch/config/elasticsearch.yml

为容器起了一个名字elasticsearch 暴露两个端口 9200端口 向elasticsearch的restApi发送http请求的端口 9300是es在分布式集群状态下 节点之间的通讯端口
docker run --name elasticsearch -p 9200:9200 -p 9300:9300 \

以单节点模式运行
-e “discovery.type=single-node” \

指定内存占用
-e ES_JAVA_OPTS="-Xms64m -Xmx128m" \

目录的挂载
-v /mydata/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
-v /mydata/elasticsearch/data:usr/share/elasticsearch/data
-v /mydata/elasticsearch/plugins:usr/share/elasticsearch/plugins \

指定刚下载的镜像
-d elasticsearch:7.4.2

我这里的直接启动成功了,但是一会再看一次没有了!
处理错误:

  1. 如果启动失败,查看日志docker logs elasticsearch,显示java.nio.file.AccessDeniedException:拒绝访问
  2. 到elasticsearch下查看data目录权限 ll
    在这里插入图片描述
    把所有组的文件权限都改成rws:**chmod -R 777 /mydata/elasticsearch/ **
  3. 重新启动elasticsearch: docker start S4C
    “S4C”为docker中elasticsearch的进程号前三位,通过 docker ps -a查看
    访问 XXXX:9200 端口,出现json字符串表示访问成功!
    在这里插入图片描述

安装ik分词器

  • https://github.com/medcl/elasticsearch-analysis-ik/releases?after=v7.6.2 找到与自己es版本相同的ik下载到本地,并解压到新建的ik文件夹(我的是7.4.2)

在这里插入图片描述使用xftp,将ik文件夹放到es的plugins目录(安装完成…)
到镜像中测试
在这里插入图片描述出现ik,表示安装上了。在postman中测试
在这里插入图片描述

自定义扩展词库

修改分词器配置文件,指定一个远程词库,让ik分词器远程发送请求得到最新单词:
在这里插入图片描述远程项目如何实现:

  1. 写一个项目,处理请求返回新单词,让ik分词器给项目发送请求
  2. 把最新词库放到nginx中,让ik给nginx发送请求

这里使用2的方式,所以先安装nginx
修改内存:
使用free -m看一下内存,如果内存太小,关闭虚拟机增加一下
在这里插入图片描述把虚拟机内存改为3g,把es最大内存改为512
//停止容器
docker stop elasticsearch
//删除容器
docker rm elasticsearch
//创建容器
docker run --name elasticsearch -p 9200:9200 -p 9300:9300
-e “discovery.type=single-node”
-e ES_JAVA_OPTS="-Xms64m -Xmx512m"
-v /mydata/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
-v /mydata/elasticsearch/data:/usr/share/elasticsearch/data
-v /mydata/elasticsearch/plugins:/usr/share/elasticsearch/plugins
-d elasticsearch:7.4.2

Docker安装nginx

在这里插入图片描述

docker run -p 80:80 --name nginx -d nginx:1.10
mkdir nginx //mydata文件夹下
docker container cp bac97:/etc/nginx . //使用nginx容器长iD,使用容器名报错
docker stop bac97
docker rm bac97
mv nginx conf
mkdir nginx
mv conf nginx/
//每一行后面都有一个 \ 用于linux识别换行
docker run -p 80:80 --name nginx
-v /mydata/nginx/html:/usr/share/nginx/html
-v /mydata/nginx/logs:/var/log/nginx
-v /mydata/nginx/conf:/etc/nginx
-d nginx:1.10

图示:
在这里插入图片描述在这里插入图片描述 访问80端口

​ 出现404,因为nginx/html文件夹下没有文件,随便编写一个index.html,访问80可以显示出来,说明nginx配置完成(nginx寻找资源默认都是在html文件夹下找)
在这里插入图片描述
修改ik分词器远程词库地址:
在这里插入图片描述修改完成之后,重启es
在这里插入图片描述如果想增加什么分词,就在fenci.txt进行新增,重启es就能自动识别:
在这里插入图片描述测试不通过,之后改成使用es中配置分词词库,没有用到nginx(这种方式在es集群环境下并不适用)

在这里插入图片描述

Docker安装Kibana

可视化界面,可视化检索数据

测试数据方法:

  1. 直接用postman,但是略繁琐
  2. 用kibana,方便,但是体积略大

上一节已经安装kibana了,启动:

docker run --name kibana -e ELASTICSEARCH_HOSTS=http://192.168.0.143:9200 -p 5601:5601 \
-d kibana:7.4.2

注意把ip换成自己的

访问192.168.0.143:5601

  • 因为我安装出问题了,所以使用的谷歌插件 elasticsearch-head,这个很轻便,kibana1.1G!

修改:

使用elasticsearch-head发送请求会出现406问题,这是因为缺少请求体导致发送数据不安全,需要修改两个地方:
F:\JavaDevelop\plug\elasticsearch-head\elasticsearch-head 下 vendor.js

  1. 第一处在6888行:把内容 ‘application/x-www-form-urlencoded’ 改成 ‘application/json;charset=UTF-8’
  2. 第二处在7574行:把内容 ‘application/x-www-form-urlencoded’ 改成 ‘application/json;charset=UTF-8’

修改完成后刷新界面,否则无法进行crud

kibana是大数据专用的软件哦~

设置开机自启动

docker update elasticsearch --restart=always
docker update kibana --restart=always

注:

  • 访问192.168.0.143:5601可能会出现没有准备好的标识,查看docker logs kibana,如果没有出现error,那么等待一会再访问就访问到了!
    在这里插入图片描述- 如果kibana写错ip,就废了,我之前那个虚拟机就是,咋弄都改不了,一直报错!!!解决办法欢迎各位同行指点迷津~
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在CentOS 7上通过Docker安装Elasticsearch,可以按照以下步骤进行操作: 1. 拉取Elasticsearch镜像。可以使用以下命令拉取指定版本的镜像: ``` docker pull docker.elastic.co/elasticsearch/elasticsearch:7.13.0 ``` 2. 运行容器启动Elasticsearch。使用以下命令运行容器,请确保替换掉命令中的`b1179d41a7b4`为实际的镜像ID: ``` docker run -d --name es -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" b1179d41a7b4 ``` 这样,你就成功在CentOS 7上通过Docker安装Elasticsearch。可以通过访问`http://localhost:9200`来验证Elasticsearch是否正常运行。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Docker安装ElasticSearchCentos7机器环境)](https://blog.csdn.net/weixin_41827162/article/details/118436153)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [centos7docker安装Elasticsearch](https://blog.csdn.net/hzblucky1314/article/details/121419857)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值