Docker环境下安装Elasticsearch、IK分词器、HEAD插件详细步骤

1 容器的创建与远程连接

(1) 下载镜像

docker pull elasticsearch:5.6.8

(2) 创建容器

docker run ‐di ‐‐name=tensquare_elasticsearch ‐p 9200:9200 ‐p 9300:9300 elasticsearch:5.6.8

(3) 浏览器输入地址:
http://宿主机ip:9200即可看到如下信息:

{
  "name" : "VWmhFyO",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "wlrOH86oSjChPU8XJTdfwg",
  "version" : {
    "number" : "5.6.8",
    "build_hash" : "688ecce",
    "build_date" : "2018-02-16T16:46:30.010Z",
    "build_snapshot" : false,
    "lucene_version" : "6.6.1"
  },
  "tagline" : "You Know, for Search"
}

(4) 修改配置文件
因为elasticsearch从5版本以后默认不开启远程连接,需要修改配置文件
进入容器:

docker exec ‐it tensquare_elasticsearch  /bin/bash

此时,我们看到elasticsearch所在的目录为/usr/share/elasticsearch ,进入config看到了配置文件elasticsearch.yml。我们通过vi命令编辑此文件,尴尬的是容器并没有vi命令 ,咋办?我们需要以文件挂载的方式创建容器才行,这样我们就可以通过修改宿主机中的某个文件来实现对容器内配置
文件的修改。
(5) 拷贝配置文件到宿主机
首先退出容器,然后执行命令:

docker cp tensquare_elasticsearch:/usr/share/elasticsearch/config/elasticsearch.yml /usr/share/elasticsearch.yml

(6) 停止和删除原来创建的容器

docker stop tensquare_elasticsearch 
docker rm  tensquare_elasticsearch

(7) 重新执行创建容器命令

docker run ‐di ‐‐name=tensquare_elasticsearch ‐p 9200:9200 ‐p 9300:9300 ‐v /usr/share/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml elasticsearch:5.6.8

(8) 修改配置文件
修改/usr/share/elasticsearch.yml 将 transport.host: 0.0.0.0 前的#去掉后保存文件退出。其作用是允许任何ip地址访问elasticsearch .开发测试阶段可以这么做,生产环境下指定具体的IP。

(9) 重启启动

docker restart tensquare_elasticsearch

重启后发现重启启动失败了,这时什么原因呢?这与我们刚才修改的配置有关,因为
elasticsearch在启动的时候会进行一些检查,比如最多打开的文件的个数以及虚拟内存
区域数量等等,如果你放开了此配置,意味着需要打开更多的文件以及虚拟内存,所以
我们还需要系统调优。
(10) 系统调优
我们一共需要修改两处修改/etc/security/limits.conf ,追加内容(不要忘了*):

* soft nofile 65536
* hard nofile 65536

如果limits.conf是只读文件,则退出vim或者vi,修改此文件权限:

sudo chmod +777 limits.conf

nofile是单个进程允许打开的最大文件个数 soft nofile 是软限制 hard nofile是硬限制修改/etc/sysctl.conf,追加内容:

vm.max_map_count=655360

限制一个进程可以拥有的VMA(虚拟内存区域)的数量执行下面命令 修改内核参数马上生效:

sysctl ‐p

(11) 重新启动虚拟机,再次启动容器

2 IK分词器安装

(1) 下载与elasticsearch对应的版本
https://github.com/medcl/elasticsearch-analysis-ik/releases
(2) 将下载的文件上传至宿主机
(3) 在宿主机中将ik文件夹拷贝到容器内 /usr/share/elasticsearch/plugins 目录下:
**拷贝前先解压,**解压后的文件夹名有可能不是ik,执行命令:

cp -r elasticsearch ik

拷贝:

docker cp ik tensquare_elasticsearch:/usr/share/elasticsearch/plugins/

(4) 重新启动,即可加载IK分词器

docker restart tensquare_elasticsearch

3 HEAD插件安装

(1) 修改/usr/share/elasticsearch.yml ,添加允许跨域配置

http.cors.enabled: true
http.cors.allow‐origin: "*"

(2) 重新启动elasticseach容器
(3) 下载head镜像

docker pull mobz/elasticsearch‐head:5

(4) 创建head容器

docker run ‐di ‐‐name=myhead ‐p 9100:9100 mobz/elasticsearch‐head:5

(5) 测试
浏览器中输入http://宿主机ip:9100
连接http://宿主机ip:9200
Docker环境下安装Elasticsearch、IK分词器、HEAD插件详细步骤_第1张图片

你可能感兴趣的:(docker)