Elasticsearch :docker 下 7.4.2版本的 Elasticsearch Kibana Nginx下IK分词器 安装

前面需要提前安装 docker 这里就不再赘述了

前言:docker 一些知识

1、如何进入docker 容器内部

linux下指令:

docker exec -it elasticsearch /bin/bash

elasticsearch 为指令: docker ps ,中运行的容器名称

windows 下指令:

docker exec -it elasticsearch bash

2、docker 如何查看 安装不成功的问题

docker ps
docker logs 服务的ID (CONTAINER ID)

一、下载 elasticsearch & kibana

1)、docker

docker pull elasticsearch:7.4.2
docker pull kibana:7.4.2

2)、创建2个目录供 docker 中elasticsearch 外部关联

mkdir -p /mydata/elasticsearch/config
mkdir -p /mydata/elasticsearch/data

3)、 创建elasticsearch的config配置文件 :elasticsearch.yml

1、允许外网访问
echo "http.host: 0.0.0.0">>/mydata/elasticsearch/config/elasticsearch.yml

这里注意:http.host: 0.0.0.0 域名和host后面的空格一定不能省率否则无法启动
在这里插入图片描述

2、保证权限
chmod -R 777 /mydata/elasticsearch/

4)、 这里一定要注意,如果实在云服务器一定要开启 9200 和 9300 俩个端口

1、安装指令
docker run  --name elasticsearch -p 9200:9200 -p 9300:9300 \
-e "discovery.type=single-node" \
-e ES_JAVA_OPTS=“-Xms64m -Xmx128m” \
-v /mydata/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /mydata/elasticsearch/data:/usr/share/elasticsearch/data \
-v /mydata/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
-d elasticsearch:7.4.2

实际操作请删除图中红线部分
Elasticsearch :docker 下 7.4.2版本的 Elasticsearch Kibana Nginx下IK分词器 安装_第1张图片

2、说明
代码 说明
docker run --name elasticsearch -p 9200:9200 -p 9300:9300 开启elasticsearch 映射9200和9300端口
discovery.type=single-node 单机模式-非集群
ES_JAVA_OPTS=“-Xms64m -Xmx128m” 设置JVM的内存大小(我这里一直报错,解决办法如下)
3、注意

解决 ES_JAVA_OPTS=“-Xms64m -Xmx128m” 报错问题

可以发现有个jvm.options文件控制了启动参数,通过find命令查找该文件
[root@zq-zabbix ~]# find / -type f -name ‘jvm.options’

/etc/elasticsearch/jvm.options
可以发现该文件路径,打开编辑,最上面就能看到内存控制参数
-Xms1g -> -Xms64m
-Xmx1g -> -Xmx128m
将上面代码中 "-e ES_JAVA_OPTS=“-Xms64m -Xmx128m” " 这行删除,重新执行
重启生效:docker restart elasticsearch

5)、 docker ps 查看docker容器运行状态

顺利的话此时应该可以看到 elasticsearch 服务已经启动了
在这里插入图片描述

查看你得elasticsearch http://你得id:9200/

Elasticsearch :docker 下 7.4.2版本的 Elasticsearch Kibana Nginx下IK分词器 安装_第2张图片

返回这个界面就说明配置成功了

6)、 配置 kibana

1、安装指令
docker run --name kibana -e ELASTICSEARCH_HOSTS=http://x.x.x.x:9200 -p 5601:5601 -d kibana:7.4.2
2、注意

注意:
这个x.x.x.x不是你服务器的IP 而是你elastic容器的 IP ,查看执行以下命令
如何查看XXXXXXX
docker ps -a
// 6a8152a1ad8 是你的容器编号 (CONTAINER ID)
docker inspect XXXXXXX |grep IPAddress
操作如下图:

Elasticsearch :docker 下 7.4.2版本的 Elasticsearch Kibana Nginx下IK分词器 安装_第3张图片

关于配置这块引用一下这里 http://www.mamicode.com/info-detail-2868553.html

3、测试

Elasticsearch :docker 下 7.4.2版本的 Elasticsearch Kibana Nginx下IK分词器 安装_第4张图片

出现这个问题时
1、可能是服务还没有起来
2、kibana 启动服务报错了
此时用docker logs kibana容器ID 看一下错误

正常启动Elasticsearch :docker 下 7.4.2版本的 Elasticsearch Kibana Nginx下IK分词器 安装_第5张图片

二、安装 elasticsearch IK分词器

1、找到 IK 分词器的官网

首先找到IK分词器的官方github
IK分词器:https://github.com/medcl/elasticsearch-analysis-ik/releases?after=v7.5.0

Elasticsearch :docker 下 7.4.2版本的 Elasticsearch Kibana Nginx下IK分词器 安装_第6张图片

找到zip文件右键复制链接
Elasticsearch :docker 下 7.4.2版本的 Elasticsearch Kibana Nginx下IK分词器 安装_第7张图片

2、安装 IK 分词器

首先确定下我们安装的位置
因为之前启动es时,我们将plugins文件夹挂载到了docker容器之外 /mydata/elasticsearch 目录下
Elasticsearch :docker 下 7.4.2版本的 Elasticsearch Kibana Nginx下IK分词器 安装_第8张图片
所以现在我们只需要看一下这2个目录是否统一 (是统一的可以进入docker 容器内部看)
进入docker容器的内部
进入到外部 /mydata/elasticsearch/plugins 目录内
在这里插入图片描述
下载 IK分词器
指令如下

wget https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.4.2/elasticsearch-analysis-ik-7.4.2.zip

然后解压缩,并且删除压缩包

 unzip elasticsearch-analysis-ik-7.4.2.zip -d analysis-ik
 rm -rf elasticsearch-analysis-ik-7.4.2.zip

在这里插入图片描述
然后重新启动 es

docker restart elasticsearch

3、测试 IK 分词器

Elasticsearch :docker 下 7.4.2版本的 Elasticsearch Kibana Nginx下IK分词器 安装_第9张图片

三、安装 nginx 远程 IK分词库

1、docker 安装nginx

Elasticsearch :docker 下 7.4.2版本的 Elasticsearch Kibana Nginx下IK分词器 安装_第10张图片
随便创建一个nginx实例

docker run -p 80:80 --name nginx -d nginx

将容器内的配置文件拷贝到当前目录

docker container cp nginx:/etc/nginx .
mv nginx conf
mkdir nginx
mv conf nginx/

docker 启动并且映射到容器外部目录(windows下和mac下都有坑)

docker run -p 80:80 --name nginx \
-v /mydata/nginx/html:/usr/share/nginx/html \
-v /mydata/nginx/logs:/var/log/nginx \
-v /mydata/nginx/conf:/etc/nginx \
-d nginx

2、windows下 docker 安装nginx (有问题)

Elasticsearch :docker 下 7.4.2版本的 Elasticsearch Kibana Nginx下IK分词器 安装_第11张图片


docker run  -p 80:80 --name nginx \
-v F:/wwwroot/mydata/nginx/html:/usr/share/nginx/html \
-v F:/wwwroot/mydata/nginx/logs:/var/log/nginx \
-v F:/wwwroot/mydata/nginx/conf:/etc/conf \
-d nginx

docker run  -p 80:80 --name nginx \
-v /F/wwwroot/mydata/nginx/html:/usr/share/nginx/html \
-v /F/wwwroot/mydata/nginx/logs:/var/log/nginx \
-v /F/wwwroot/mydata/nginx/conf:/etc/conf \
-d nginx

docker run -p 80:80 --name nginx \
-v F:\wwwroot\mydata\nginx\html:/usr/share/nginx/html \
-v F:\wwwroot\mydata\nginx\logs:/var/log/nginx \
-v F:\wwwroot\mydata\nginx\conf:/etc/conf \
-d nginx

3、macos 下 docker 安装nginx(成功)

docker配置nginx的完整教程:https://blog.csdn.net/qq_42114918/article/details/85238011

注意大坑:注意mac下1~1024端口的开放问题
Elasticsearch :docker 下 7.4.2版本的 Elasticsearch Kibana Nginx下IK分词器 安装_第12张图片

目录结构 /Users/ctra_wl/Desktop/mydata/

docker run -p 80:80 --network bri1 --name nginx \
-v /Users/ctra_wl/Desktop/mydata/nginx/html:/usr/share/nginx/html:rw \
-v /Users/ctra_wl/Desktop/mydata/nginx/conf/conf.d:/etc/nginx/conf.d:ro \
-v /Users/ctra_wl/Desktop/mydata/nginx/conf/nginx.conf:/etc/nginx/nginx.conf:ro \
-v /Users/ctra_wl/Desktop/mydata/nginx/logs:/var/log/nginx \
-d nginx


2、在nginx 设置IK分词器 关键字

同样在挂载的外部目录 /mydata/nginx/html 中
Elasticsearch :docker 下 7.4.2版本的 Elasticsearch Kibana Nginx下IK分词器 安装_第13张图片
如图,在html目录中新建一个es文件夹,里面放入一个 fenci.txt 的文本文件
然后 vi fenci.txt 在里面输入我们想要自定义的关键词

3、在 IK 中设置远程词库

Elasticsearch :docker 下 7.4.2版本的 Elasticsearch Kibana Nginx下IK分词器 安装_第14张图片

Elasticsearch :docker 下 7.4.2版本的 Elasticsearch Kibana Nginx下IK分词器 安装_第15张图片

四、设置 elasticsearch 开机启动

指令

docker update elasticsearch --restart-always

五、ES的各种语法使用

https://www.jianshu.com/p/3cb205b5354a

你可能感兴趣的:(java,springboot,docker,elasticsearch,linux,java)