Mac 超详细Docker Desktop安装Elasticsearch(包括分词器插件)、Elasticsearch-head、Kibana

一、安装Elasticsearch

1、使用Docker Desktop搜索elasticsearch,选择需要的版本号后可以直接点击Pull拉取,也可再终端中输入命令:
docker pull elasticsearch:8.6.2

在这里插入图片描述

2、拉取下来后使用启动elasticsearch,这里选择使用命令启动

注意:这里需要提前在本机中创建elasticsearch.yml文件,/Users/zgy/Downloads/Java/es/elasticsearch.yml是我本机的路径,需要替换成你们自己的

elasticsearch.yml文件内容

http: 
 host: 0.0.0.0
xpack.security.enabled: false
xpack.security.enrollment.enabled: true
xpack.security.http.ssl:
  enabled: false

http.cors.enabled: true
http.cors.allow-origin: "*"
docker run --name es -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms512m -Xmx512m" -v /Users/zgy/Downloads/Java/es/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml -d elasticsearch:8.6.2

启动命令解析:

docker run: 运行 Docker 容器的命令。
--name es: 为容器指定一个名称(es)。

-p 9200:9200 -p 9300:9300: 
将容器的端口 9200(用于 HTTP)和端口 9300(用于节点间通信)映射到宿主机的相同端口,使得可以通过宿主机访问 Elasticsearch 服务。

-e "discovery.type=single-node": 
设置 Elasticsearch 的发现类型为单节点模式,这样 Elasticsearch 将以单节点的方式运行而无需进行集群发现。

-e ES_JAVA_OPTS="-Xms512m -Xmx512m": 
设置 ElasticsearchJava 虚拟机参数,指定初始堆内存为 512MB,最大堆内存为 512MB-v /Users/zgy/Downloads/Java/es/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml: 
将宿主机上的 Elasticsearch 配置文件 /Users/zgy/Downloads/Java/es/elasticsearch.yml 挂载到容器内的配置文件路径,以便使用自定义的配置。

-d elasticsearch:8.6.2: 使用 Elasticsearch 8.6.2 镜像创建容器,并在后台运行。

通过运行这个命令,你将在 Docker 中创建一个名为 "es"Elasticsearch 容器,并将端口 92009300 映射到宿主机上,同时配置了单节点模式和自定义的 Java 虚拟机参数。你还将宿主机上的自定义配置文件挂载到容器中,以便使用该配置文件启动 Elasticsearch。

请注意,命令中的文件路径和镜像版本是根据你的实际情况提供的示例路径和版本号,你可以根据自己的需求进行相应的调整。

启动之后:
在这里插入图片描述

3、启动了之后访问: http://localhost:9200/

能够成功显示如下界面就说明Elasticsearch安装成功了
在这里插入图片描述

二、安装可视化界面:elasticsearch-head

1、使用Docker Desktop搜索elasticsearch-head,选择需要的版本号后可以直接点击Pull拉取,也可再终端中输入命令:
docker pull mobz/elasticsearch-head:5-alpine

在这里插入图片描述

2、拉取下来后使用启动elasticsearch-head,这里选择使用命令启动
docker run -d --name es_admin -p 9100:9100 mobz/elasticsearch-head:5

启动命令解析:

docker run: 运行 Docker 容器的命令。

-d: 将容器设置为在后台运行(守护态)。

--name es_admin: 为容器指定一个名称(es_admin)。

-p 9100:9100: 将容器的端口 9100 映射到宿主机的相同端口,使得可以通过宿主机访问 Elasticsearch Head。

mobz/elasticsearch-head:5: 使用 mobz/elasticsearch-head 镜像的版本 5 创建容器。

通过运行这个命令,你将在 Docker 中创建一个名为 "es_admin"Elasticsearch Head 容器,并将容器的端口 9100 映射到宿主机上。这使得可以通过宿主机访问 Elasticsearch Head 工具,用于可视化管理 Elasticsearch 集群。

请注意,命令中的镜像版本是根据你的实际需求提供的示例版本号,你可以根据需要选择适合的版本。

3、启动后访问链接: http://localhost:9100/
在这里插入图片描述

在这里插入图片描述
后面使用的时候遇到的问题解决:
1、问题:使用elasticsearch-head查看索引中的数据时点击索引没有反应,查询不了数据,点击F12的时候发现如下报错
{“error”:“Content-Type header [application/x-www-form-urlencoded] is not supported”,“status”:406}

2、解决方式:
复制elasticsearch-head容器中的vendor.js文件到本地中:
命令:docker cp es_admin:/usr/src/app/_site/vendor.js /Users/zgy/Downloads/Java/es/vendor.js

打开本地中的vendor.js文件:
修改第6886行:application/json;charset=UTF-8
在这里插入图片描述
修改第7573行:application/json;charset=UTF-8
在这里插入图片描述
保存后,再用命令替换elasticsearch-head容器中的vendor.js文件:
命令:docker cp /Users/zgy/Downloads/Java/es/vendor.js es_admin:/usr/src/app/_site/vendor.js

3、测试:
在这里插入图片描述
可正常查询

三、安装Kibana

1、使用Docker Desktop搜索Kibana,选择需要的版本号后可以直接点击Pull拉取,也可再终端中输入命令:

在这里插入图片描述

2、拉取下来后使用启动elasticsearch,这里选择使用命令启动

注意:这里需要提前在本机中创建kibana.yml文件,/Users/zgy/Downloads/Java/es/kibana.yml是我本机的路径,需要替换成你们自己的

kibana.yml文件内容:

server.host: "0.0.0.0"
server.shutdownTimeout: "5s"
elasticsearch.hosts: [ "http://elasticsearch:9200" ]
monitoring.ui.container.elasticsearch.enabled: true
 
i18n.locale: "zh-CN"

启动命令:

docker run --name kibana -p 5601:5601 --link es:elasticsearch  -v /Users/zgy/Downloads/Java/es/kibana.yml:/usr/share/kibana/config/kibana.yml -d kibana:8.6.2

启动命令解析:

docker run: 运行 Docker 容器的命令。

--name kibana: 为容器指定一个名称(kibana)。

-p 5601:5601: 将容器的端口 5601 映射到宿主机的相同端口,使得可以通过宿主机访问 Kibana 服务。

--link es:elasticsearch:Elasticsearch 容器(名称为 "es")与 Kibana 容器连接起来,以便 Kibana 可以与 Elasticsearch 进行通信。

-v /Users/zgy/Downloads/Java/es/kibana.yml:/usr/share/kibana/config/kibana.yml: 将宿主机上的 Kibana 配置文件 /Users/zgy/Downloads/Java/es/kibana.yml 挂载到容器内的配置文件路径,以便使用自定义的配置。

-d kibana:8.6.2: 使用 Kibana 8.6.2 镜像创建容器,并在后台运行。

通过运行这个命令,你将在 Docker 中创建一个名为 "kibana"Kibana 容器,并将端口 5601 映射到宿主机上。容器将与 Elasticsearch 容器建立连接,以便 Kibana 可以与 Elasticsearch 进行通信。你还将宿主机上的自定义配置文件挂载到容器中,以便使用该配置文件启动 Kibana。

请注意,命令中的文件路径和镜像版本是根据你的实际情况提供的示例路径和版本号,你可以根据自己的需求进行相应的调整。
3、启动后访问链接: http://localhost:5601/

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

四、 安装ik分词器插件

打开终端按步骤执行一下命令

1、以root的身份进入到 Elasticsearch 容器:
docker exec -it -u 0 <elasticsearch_container_id> /bin/bash

请将 <elasticsearch_container_id> 替换为你的 Elasticsearch 容器的 ID或容器名。
2、在容器中切换到 Elasticsearch 插件目录:
cd /usr/share/elasticsearch/plugins
3、下载 IK 插件压缩包:
wget https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v8.9.0/elasticsearch-analysis-ik-8.6.2.zip
4、进入到plugins中:
cd plugins
5、创建ik文件夹:
mkdir ik
6、复制压缩包到ik文件夹中:
cp elasticsearch-analysis-ik-7.17.7.zip plugins/ik
7、解压插件压缩包:
unzip elasticsearch-analysis-ik-8.9.0.zip
5、删除插件压缩包:
rm elasticsearch-analysis-ik-8.9.0.zip
6、退出容器:
exit

完成上述步骤后,IK 插件将已经成功下载并安装到 Elasticsearch 容器中。

请注意,这些命令假设你已经具有适当的权限来执行这些操作,并且已经在容器中安装了必要的工具(例如 wget 和 unzip)。

wget、unzip命令安装:
apt-get update
apt-get install wget unzip
7、重启Elasticsearch容器验证分词器,如图所示则分词器安装成功

在这里插入图片描述
可能遇到的问题:当es和ik分词器版本不一致时,es容器会启动失败,报错:

java.lang.IllegalArgumentException: Plugin [analysis-ik] was built for Elasticsearch version 7.17.7 but version 7.17.10 is running

在这里插入图片描述
解决办法:
复制es容器中的plugin-descriptor.properties文件到本地中:
命令:

docker cp es:/usr/share/elasticsearch/plugins/ik/plugin-descriptor.properties /Users/zgy/Downloads/Java/es/plugins/ik/plugin-descriptor.properties 

打开本地中的plugin-descriptor.properties文件,修改版本号为es的版本号:
在这里插入图片描述

保存后,再用命令替换e’s容器中的plugin-descriptor.properties文件:
命令:

docker cp /Users/zgy/Downloads/Java/es/plugins/ik/plugin-descriptor.properties es:/usr/share/elasticsearch/plugins/ik/plugin-descriptor.properties

重新启动es即可成功加载ik分词器

  • 5
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值