win10使用docker安装ElasticSearch
>说明安装部署ElasticSearch拉取镜像启动ES挂载数据卷准备本机路径查看es配置信息将容器内部配置文件拷贝到本地关闭并移除ES挂载数据卷访问ES账号密码登录忽略验证直接登录安装部署Kibana拉取镜像启动Kibana配置kibana链接ES访问链接:http://127.0.0.1:5601/进入ES容器生成token进入kibana容器生成token使用ES的账号密码登录安装部署IK分词器挂载数据卷未挂载数据卷测试分词器
说明
环境:Win10、docker-Ubuntu
ElasticSearch:8.4.1
Kibana:8.4.1
IK:8.4.1
ElasticSearch、Kibana、IK这三个版本尽量保持一致,可能会出现版本对不上的错误,导致无法启动ES数据库。目前ElasticSearch、Kibana的最新版本为8.4.3,但是IK的最新版本是8.4.1,所以我们统一版本都选择8.4.1
参考:使用docker部署elasticsearch+kibana-chenm1xuexi的博客-CSDN博客
docker部署elasticsearch容器安装ik分词器 - 开顺 - 博客园 (cnblogs.com)
安装部署ElasticSearch
拉取镜像
docker pull elasticsearch:8.4.1
启动ES
xxxxxxxxxx
docker run -d --name es -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:8.4.1
挂载数据卷
准备本机路径
d盘下的esdata文件夹:/d/esdata,并创建data、logs文件夹
查看es配置信息
xxxxxxxxxx
docker exec -it es bash
cd config
pwd
将容器内部配置文件拷贝到本地
xxxxxxxxxx
# 查看docker进程信息 -f 筛选
docker ps -f name=es
# docker cp 容器ID:容器路径 本机路径
docker cp 5803d10fa9ae:/usr/share/elasticsearch/config/ D:\\esdata\\config
关闭并移除ES
xxxxxxxxxx
docker stop es
docker rm es
挂载数据卷
挂载的意思是将容器运行所需要配置文件、文件存储空间都放在本机。这样做即使容器被销毁,容器的配置文件和数据都还在本地存储,不会受影响,挂载后修改其中一端的数据,另一端数据也会随之更改
挂载的格式: -v 本机路径:容器内路径
值得注意:window下命令行没有换行、挂载整个config文件夹、使用绝对路径
参考:Docker for Windows 安装 ElasticSearch 和 ik 分词器 挂载磁盘 | 言曌博客 (liuyanzhao.com)
xxxxxxxxxx
docker run -d --name es -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms512m -Xmx512m" -v /d/esdata/config:/usr/share/elasticsearch/config -v /d/esdata/data:/usr/share/elasticsearch/data -v /d/esdata/logs:/usr/share/elasticsearch/logs -v /d/esdata/plugins:/usr/share/elasticsearch/plugins elasticsearch:8.4.1
访问ES
我们可以使用账号密码登录也可以直接跳过
账号密码登录
进入容器内部借助 elasticsearch-reset-password
工具重置密码
xxxxxxxxxx
docker exec -it es bash
bin/elasticsearch-reset-password -username elastic -i
# 为账号elastic指定密码
成功后直接使用【elastic、密码】登录即可
忽略验证直接登录
将ES配置文件【elasticsearch.yml】中的配置【xpack.security.enabled】改成 false,意思是不需要账号密码不需要使用https协议,更多配置如下
xxxxxxxxxx
xpack.security.enabled false #安全验证配置总开关,也可以根据需要单独配置下面的各项
xpack.security.enrollment.enabled true #是否需要用户名密码
xpack.security.http.ssl#客户端访问是否使用https协议
xpack.security.transport.ssl#集群节点间交换是否使用https协议
注意如果你已经挂载到本地,则直接在本地修改,若未挂载到本地则需要进入容器内部修改配置文件
重启ES服务
xxxxxxxxxx
docker restart es
直接访问 127.0.0.1:9200
安装部署Kibana
拉取镜像
xxxxxxxxxx
docker pull kibana:8.4.1
启动Kibana
xxxxxxxxxx
docker run --name kibana -d -p 5601:5601 --link es -e "ELASTICSEARCH_URL=https://127.0.0.1:9200" kibana:8.4.1
--link es:链接ES数据库,格式:--link [ES的容器名称]
-e:指定ES的链接路径,要注意一下你的ES数据库使用http还是https
查看kibana日志,等待日志出链接,再访问链接(0.0.0.0改成127.0.0.1或你的ip即可)
xxxxxxxxxx
docker logs kibana
配置kibana链接ES
访问链接:http://127.0.0.1:5601/
进入ES容器生成token
注意ES8版本后,启动ES不会自动生成token,需要手动去生成,若手动生成token失败,说明你的ES并没有启动成功,可以检查一下配置文件和启动命令
xxxxxxxxxx
docker exec -it es bash
./bin/elasticsearch-create-enrollment-token --scope kibana
成功生成token后,将其填入网页输入框,并点击验证按钮
进入kibana容器生成token
成功生成验证码后,输入并验证
xxxxxxxxxx
docker exec -it kibana bash
./bin/kibana-verification-code
使用ES的账号密码登录
待验证完成后使用ES的账号密码登录
首页侧边菜单栏选择【Dev Tools】
在这里我们可以使用kibana命令更好的操作ES数据库,ES没有kibana也是可以正常使用的
安装部署IK分词器
下载指定版本IKReleases · medcl/elasticsearch-analysis-ik (github.com)
挂载数据卷
挂载数据卷启动的话,我们直接将压缩包解压到我们本机的plugins文件夹下然后重启ES数据库即可
xxxxxxxxxx
docker restart es
未挂载数据卷
未挂载数据卷启动,我们需要将ik压缩包拷贝到容器内部的plugins文件夹下,再进行解压,将压缩包删除然后重启ES数据库即可
xxxxxxxxxx
# docker cp 本机路径 容器ID:容器路径
docker cp d:\\esdata\\download\\elasticsearch-analysis-ik-8.4.1.zip b3be26f86c9d:/usr/share/elasticsearch/plugins
xxxxxxxxxx
cd plugins/
unzip elasticsearch-analysis-ik-8.4.1.zip -d elasticsearch-analysis-ik-8.4
.1
rm -rf elasticsearch-analysis-ik-8.4.1.zip
# 如果压缩包放在plugins文件夹下,记得将其删除,不然es会将该压缩包识别为一个插件(实际并不是),导致es启动失败
测试分词器
xxxxxxxxxx
GET _analyze
{
"analyzer": "ik_max_word",
"text": "梦想家"
}
安装ik分词器插件前
安装ik分词器插件后,表名分词器插件安装成功