Jinx

一只奶牛猫

Docker安装ES/Kibana

Docker安装ES/Kibana

部署单点ES

Docker命令

# 创建网络
docker network create es-net
# 拉取镜像
docker pull elasticsearch:7.17.5
docker pull kibana:7.17.5
# 运行
docker run -d \
    --name es \
    -e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \
    -e "discovery.type=single-node" \
    -v es-data:/usr/share/elasticsearch/data \
    -v es-plugins:/usr/share/elasticsearch/plugins \
    --privileged \
    --network es-net \
    -p 9200:9200 \
    -p 9300:9300 \
elasticsearch:7.17.5

下面是各个参数的含义解释和作用:

  • -d:以后台模式运行容器。
  • --name es:为容器指定一个名称为 “es”。
  • -e "ES_JAVA_OPTS=-Xms512m -Xmx512m":设置 Elasticsearch 的 Java 虚拟机选项,指定初始堆大小为 512MB,最大堆大小也为 512MB。
  • -e "discovery.type=single-node":设置 Elasticsearch 的发现类型为单节点模式,这意味着它将以单节点模式启动,不会尝试与其他节点进行通信。
  • -v es-data:/usr/share/elasticsearch/data:将名为 “es-data” 的 Docker 卷挂载到容器内的 /usr/share/elasticsearch/data 目录,用于持久化 Elasticsearch 的数据。
  • -v es-plugins:/usr/share/elasticsearch/plugins:将名为 “es-plugins” 的 Docker 卷挂载到容器内的 /usr/share/elasticsearch/plugins 目录,用于安装 Elasticsearch 插件。
  • --privileged:以特权模式运行容器,这允许容器内的进程获得更高的权限。
  • --network es-net:将容器连接到名为 “es-net” 的网络,这样容器内的服务可以通过网络进行通信。
  • -p 9200:9200:将容器的 9200 端口映射到主机的 9200 端口,这样可以通过主机的 IP 地址和端口访问 Elasticsearch 的 HTTP API。
  • -p 9300:9300:将容器的 9300 端口映射到主机的 9300 端口,这样可以通过主机的 IP 地址和端口访问 Elasticsearch 的节点间通信。

测试

在浏览器中输入:http://192.168.42.146:9200 即可看到elasticsearch的响应结果。

部署kibana

命令

docker run -d --name kibana -e ELASTICSEARCH_HOSTS=http://es:9200 --network=es-net -p 5601:5601 kibana:7.17.5

参数说明:

此时,在浏览器输入地址访问:http://192.168.42.146:5601,即可看到结果.

DevTools

kibana中提供了一个DevTools界面,地址:http://192.168.42.146:5601/app/dev_tools#/console

这个界面中可以编写DSL来操作elasticsearch。并且对DSL语句有自动补全功能。

安装IK分词器

docker cp /Users/shizitoumengchong/Documents/elasticsearch-analysis-ik-7.17.5.zip 3af12e068f16:/usr/share/elasticsearch
docker exec -it es /bin/bash
elasticsearch-plugin install file:/usr/share/elasticsearch/elasticsearch-analysis-ik-7.17.5.zip
# 选择Y回车

重启容器

# 4、重启容器
docker restart es

# 查看es日志
docker logs -f es
curl --location --request POST 'http://localhost:9200/_analyze?pretty' \
--header 'Token: dd119348-0672-4ab8-9359-7a9c3ac30a6c' \
--header 'Digi-Middleware-Auth-App: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZCI6ImthaS1za2MiLCJzaWQiOjB9.hQL5afikrokZJPJ4mUldcLsgmJXQMxegUEWI4Apyzrg' \
--header 'User-Agent: Apifox/1.0.0 (https://apifox.com)' \
--header 'Content-Type: application/json' \
--data-raw '{
  "analyzer": "ik_max_word",
  "text": ["我爱我的祖国,并且我还深爱着你"]
}'
curl --location --request POST 'http://localhost:9200/_analyze?pretty' \
--header 'Token: dd119348-0672-4ab8-9359-7a9c3ac30a6c' \
--header 'Digi-Middleware-Auth-App: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZCI6ImthaS1za2MiLCJzaWQiOjB9.hQL5afikrokZJPJ4mUldcLsgmJXQMxegUEWI4Apyzrg' \
--header 'User-Agent: Apifox/1.0.0 (https://apifox.com)' \
--header 'Content-Type: application/json' \
--data-raw '{
  "analyzer": "ik_smart",
  "text": ["我爱我的祖国,并且我还深爱着你"]
}'

source

https://www.cnblogs.com/auguse/articles/17727671.html