Docker安装Elasticsearch和Kibana
Elasticsearch安装
- 拉取Elasticsearch镜像
docker pull elasticsearch:7.2.0
这里我们安装的版本是7.2.0
- 创建Elasticsearch容器
docker run -di --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -d elasticsearch:7.2.0
-i:表示运行容器
-t:表示容器启动后会进入其命令行。加入这两个参数后,容器创建就能登录进去。即分配一个伪终端。
--name :为创建的容器命名。
-v:表示目录映射关系(前者是宿主机目录,后者是映射到宿主机上的目录),可以使用多个-v做多个目录或文件映射。注意:最好做目录映射,在宿主机上做修改,然后共享到容器上。
-d:在run后面加上-d参数,则会创建一个守护式容器在后台运行(这样创建容器后不会自动登录容器,如果只加-i -t两个参数,创建后就会自动进去容器)。
-p:表示端口映射,前者是宿主机端口,后者是容器内的映射端口。可以使用多个-p做多个端口映射
启动以后可以打开浏览器输入http://服务器地址::9200,在页面看到下面的内容就说明安装成功了
{
name: "5b0c7f19b936",
cluster_name: "docker-cluster",
cluster_uuid: "n-XweTOASVqlM9Nq-2Rznw",
version: {
number: "7.2.0",
build_flavor: "default",
build_type: "docker",
build_hash: "508c38a",
build_date: "2019-06-20T15:54:18.811730Z",
build_snapshot: false,
lucene_version: "8.0.0",
minimum_wire_compatibility_version: "6.8.0",
minimum_index_compatibility_version: "6.0.0-beta1"
},
tagline: "You Know, for Search"
}
- 修改配置,解决跨域问题
首先进入到容器中,然后进入到指定目录修改elasticsearch.yml文件。
-> docker exec -it elasticsearch /bin/bash
-> cd /usr/share/elasticsearch/config/
-> vi elasticsearch.yml
添加以下内容:
http.cors.enabled: true
http.cors.allow-origin: "*"
重启容器
-> exit
-> docker restart elasticsearch
-
安装ik分词器
Elasticsearch自带的分词器对中文分词不是很友好,我们适应ik分词器插件,下载地址
注Elasticsearch的版本和ik分词器的版本需要保持一致,不然在重启的时候会失败。
-> docker exec -it elasticsearch /bin/bash
-> cd /usr/share/elasticsearch/plugins/
-> elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.2.0/elasticsearch-analysis-ik-7.2.0.zip
-> exit
-> docker restart elasticsearch
注:
由于这里的ik分词器是从github上面下载,国内服务器直接这样安装,下载速度很慢,甚至无法下载,那我们可以在自己电脑上下载对应版本的ik分词后,再上传到服务器,并拷贝到容器的对应文件夹解压到/usr/share/elasticsearch/plugins/analysis-ik即可(点击下载)
kibana安装
- 拉取kibana镜像
docker pull kibana:7.2.0
- 创建kibana容器
-> docker run -di --name kibana --link=elasticsearch:test -p 5601:5601 -d kibana:7.2.0
启动以后可以打开浏览器输入http://服务器地址:5601就可以打开kibana的界面了。