Docker环境下安装Elasticsearch ,IK,Elasticsearch-head

elasticsearch
(1)下载镜像(此步省略)
docker pull elasticsearch:5.6.8
 (2)创建容器
docker run -di --name=tensquare_e ‐p 9200:9200 ‐p 9300:9300 elasticsearch:5.6.8
docker run -di --name=tensquare_es -e "ES_JAVA_OPTS=-Xms512m -Xmx512m" -p 9200:9200 -p 9300:9300 elasticsearch:5.6.8

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


 

(4)我们修改demo的application.yml

    spring:
    data:
    elasticsearch:
    cluster‐nodes: 192.168.184.135:9300

   (5)运行测试程序,发现会报如下错误
    NoNodeAvailableException[None of the configured nodes are available:
            [{#transport#‐1}{exvgJLR‐RlCNMJy‐hzKtnA}{192.168.184.135}
    {192.168.184.135:9300}]
            ]
    at
    org.elasticsearch.client.transport.TransportClientNodesService.ensureNodes
    AreAvailable(TransportClientNodesService.java:347)
    at
org.elasticsearch.client.transport.TransportClientNodesService.execute(Tra
    nsportClientNodesService.java:245)
    at
org.elasticsearch.client.transport.TransportProxyClient.execute(TransportP
    roxyClient.java:59)
    这是因为elasticsearch从5版本以后默认不开启远程连接,需要修改配置文件

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

(8)停止和删除原来创建的容器
    docker stop tensquare_elasticsearch
    docker rm tensquare_elasticsearch
(9)重新执行创建容器命令
    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
    (10)修改/usr/share/elasticsearch.yml 将 transport.host: 0.0.0.0 前的#去掉后保
    存文件退出。
下面两行是跨域使用,可以直接加上,也可以安装elasticsearch-head时候加上,建议直接加上
http.cors.enabled: true
http.cors.allow‐origin: "*"

其作用是允许任何ip地址访问elasticsearch .开发测试阶段可以这么做,生产环境下指定具体的IP;
建议改文件不要用vim
注:vim进入后按i键,修改完毕后 按ESC 再按两下ctrl+z

(11)重启启动
    docker restart tensquare_es
    重启后发现重启启动失败了,这时什么原因呢?这与我们刚才修改的配置有关,因为
    elasticsearch在启动的时候会进行一些检查,比如最多打开的文件的个数以及虚拟内存
    区域数量等等,如果你放开了此配置,意味着需要打开更多的文件以及虚拟内存,所以
    我们还需要系统调优。
(12)系统调优
 我们一共需要修改两处
 修改/etc/security/limits.conf ,追加内容
* soft nofile 65536
* hard nofile 65536
    nofile是单个进程允许打开的最大文件个数 soft nofile 是软限制 hard nofile是硬限制
    修改/etc/sysctl.conf,追加内容
    vm.max_map_count=655360
    限制一个进程可以拥有的VMA(虚拟内存区域)的数量
    执行下面命令 修改内核参数马上生效
    sysctl ‐p

(13)重新启动虚拟机,再次启动容器,发现已经可以启动并远程访问

---------------------------------------

IK分词器

 

进入容器

docker exec -it tensquare_es /bin/bash

查看容器中是否有ik插件

cd plugins 
退出容器
exit

把ik插件传入服务器中或者用一下命令

    (1)快捷键alt+p进入sftp , 将ik文件夹上传至宿主机(上图直接传入也可以的)
    sftp> put ‐r d:\setup\ik
 (2)在宿主机中将ik文件夹拷贝到容器内 /usr/share/elasticsearch/plugins 目录下。
    docker cp ik tensquare_es:/usr/share/elasticsearch/plugins/
   (3)重新启动,即可加载IK分词器 
docker restart tensquare_es

----------------------------------

elasticsearch-head

         docker pull mobz/elasticsearch-head:5 
        docker run -di --name=tensquare_header -p 9100:9100 mobz/elasticsearch-head:5

完毕!!!

附加

Elasticsearch与Solr - 心随梦飞[fosilzhou] - 博客园  https://www.cnblogs.com/fosilzhou/articles/4629220.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值