提示:window 环境下 docker 安装 elasticsearch
一、Docker安装Elasticsearch
- 下载镜像
docker pull docker.elastic.co/elasticsearch/elasticsearch:8.16.1
PS: elasticsearch 需要安装ik分词器插件,分词器插件需要与 elasticsearch 版本一致,请先参考:https://release.infinilabs.com/analysis-ik/stable/ 选择对应的版本,否则找不到对应的ik版本
- 启动Elasticsearch
docker run --name es -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms84m -Xmx512m" -d 镜像ID
启动Elasticsearch(挂载目录)
docker run --name es -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms84m -Xmx512m" -v D:\\project\\docker-elasticsearch\\config\\elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v D:\\project\\docker-elasticsearch\\data:/usr/share/elasticsearch/data -v D:\\project\\docker-elasticsearch\\plugins:/usr/share/elasticsearch/plugins -d 镜像ID
docker run :运行容器的命令
--name:启动后容器的名字
-p: port 端口映射,9200是外部访问es的restful端口,9300是es集群内部节点之间通信的端口。
-e: env 环境变量,ES_JAVA_OPTS="-Xms84m -Xmx512m": es是Java写的,这里是设置Java虚拟机相关参数
-v: volume 目录挂载映射
-d: daemon后台运行
PS:在宿主机上记录当前es容器的配置信息,数据,及插件,这样即使容器删了。重新生成时候,保留数据
主要包括:elasticsearch 下的 config,data,plugins 目录
- 修改配置文件 /usr/share/elasticsearch/config/elasticsearch.yml (修改为免密登录和http访问)
cluster.name: "docker-cluster"
network.host: 0.0.0.0
#----------------------- BEGIN SECURITY AUTO CONFIGURATION -----------------------
#
# The following settings, TLS certificates, and keys have been automatically
# generated to configure Elasticsearch security features on 25-12-2024 06:13:10
#
# --------------------------------------------------------------------------------
# Enable security features
xpack.security.enabled: false 这里是为了关闭http访问
xpack.security.enrollment.enabled: true
# Enable encryption for HTTP API client connections, such as Kibana, Logstash, and Agents
xpack.security.http.ssl:
enabled: false
keystore.path: certs/http.p12
# Enable encryption and mutual authentication between cluster nodes
xpack.security.transport.ssl:
enabled: true
verification_mode: certificate
keystore.path: certs/transport.p12
truststore.path: certs/transport.p12
#----------------------- END SECURITY AUTO CONFIGURATION -------------------------
#关闭http访问限制
http.cors.enabled: true
http.cors.allow-origin: '*'
http.cors.allow-headers: '*'
PS:这里可以修改密码,需要操作bin/elasticsearch-reset-password重置密码
- 重启容器,访问:http://localhost:9200/
二、安装分词器ik
- 在线安装:进入容器,cd 到 elasticsearch/bin 目录下,执行:
elasticsearch-plugin install https://get.infini.cloud/elasticsearch/analysis-ik/8.16.1
PS:ik分词器版本和elasticsearch版本一点要保持一致,否则会报错。
参考:https://github.com/infinilabs/analysis-ik/releases?page=1
- 离线安装
#将已经下载好的zip包拷贝到容器中
docker cp C:\Users\liu1995yz\Desktop\elasticsearch-analysis-ik-8.16.1.zip 695f1235805:/usr/share/elasticsearch/plugins
#进入容器
docker exec -it 695f1235805 /bin/bash
#创建ik目录
mkdir /usr/share/elasticsearch/plugins/ik
#将文件移动到ik目录中
mv /usr/share/elasticsearch/plugins/elasticsearch-analysis-ik-8.16.1.zip /usr/share/elasticsearch/plugins/ik
#进入ik
cd /usr/share/elasticsearch/plugins/ik
#解压
unzip elasticsearch-analysis-ik-8.16.1.zip
#删除压缩包
rm -rf elasticsearch-analysis-ik-8.16.1.zip
- 重启容器
- 检查
CMD命令行中:
curl -X GET "localhost:9200/_cat/plugins?v&s=component&h=name,component,version"
输出:(表示分词器安装成功)
name component version
09de59bc437f analysis-ik 8.16.1
参考:https://www.cnblogs.com/szwdun/p/10664348.html
三、安装Elasticsearch-Head
PS:需要有node环境
- 下载:https://github.com/mobz/elasticsearch-head
- 访问:http://localhost:9100/
PS:elasticsearch.yml 配置文件要设置成免密和关闭https,否则这里访问时候,要带着账号密码
参考:https://blog.csdn.net/YouMing_Li/article/details/134932203
四、Docker安装kibana
- 获取镜像:
docker pull docker.elastic.co/kibana/kibana:8.16.1
PS:kibana版本一定要和es版本一致
- 启动容器
docker run --name kibana -e ELASTICSEARCH_HOSTS=http://172.17.0.3:9200/ -p 5601:5601 -d docker.elastic.co/kibana/kibana:8.16.1
PS:ip要写容器内ip
查看es容器信息:docker inspect 09de59bc437f
3. 访问:http://localhost:5601/ (这里设置的是免密登录,所以不需要账号密码)