一、安装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":
设置 Elasticsearch 的 Java 虚拟机参数,指定初始堆内存为 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 容器,并将端口 9200 和 9300 映射到宿主机上,同时配置了单节点模式和自定义的 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文件:
命令:文章来源:https://www.toymoban.com/news/detail-763540.html
docker cp /Users/zgy/Downloads/Java/es/plugins/ik/plugin-descriptor.properties es:/usr/share/elasticsearch/plugins/ik/plugin-descriptor.properties
重新启动es即可成功加载ik分词器文章来源地址https://www.toymoban.com/news/detail-763540.html
到了这里,关于Mac 超详细Docker Desktop安装Elasticsearch(包括分词器插件)、Elasticsearch-head、Kibana的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!