docker上安装eslaticsearch
一 elasticsearch安装
1 查找镜像:
docker search elasticsearch
可以看到如下截图;
2 拉取镜像
docker pull elasticsearch
我并没有拉取search的版本,而是新的版本,就可以看到镜像了
docker images
3 启动es
docker run ‐di ‐‐name=tensquare_elasticsearch ‐p 9200:9200 ‐p 9300:9300 elasticsearch
4 浏览器访问:
但是9300端口是无法访问的,所以需要修改文件:
进入容器中:
docker exec ‐it es /bin/bash
是无法修改elasticsearch.yml这个文件的
docker cp es:/usr/share/elasticsearch/config/elasticsearch.yml /usr/share/elasticsearch.yml
然后需要停止移除原来的容器:
docker stop es
docker rm es
重新构建:
docker run -di --name=es -p 9200:9200 -p 9300:9300 -v /usr/share/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml elasticsearch
然后修改宿主机上的elasticsearch.yml文件
将 transport.host: 0.0.0.0 前的#去掉后保存退出
再次启动:
docker restart es
重启后发现重启启动失败了,这时什么原因呢?这与我们刚才修改的配置有关,因为
elasticsearch在启动的时候会进行一些检查,比如最多打开的文件的个数以及虚拟内存
区域数量等等,如果你放开了此配置,意味着需要打开更多的文件以及虚拟内存,所以
我们还需要系统调优,所以需要编辑其他文件:
vi /etc/security/limits.conf
添加:
* soft nofile 65536 * hard nofile 65536
这里需要注意空格问题,笔者就吃过了亏
再修改:
vi /etc/sysctl.conf
添加vm.max_map_count=655360
然后sysctl ‐p,重启虚拟机就可以了
二 在就是ik分词器的安装
首先将ik分词上传至宿主机,解压,
docker cp ik es:/usr/share/elasticsearch/plugins/
docker restart es
三 head插件安装
docker search elasticsearch‐head
docker pull 选择版本
docker run ‐di ‐‐name=myhead ‐p 9100:9100 选择的版本
这一步笔者试了好几个镜像,都无法成功连接最后选择了一个版本的:
docker pull mobz/elasticsearch-head:5
docker run -di --name=myheader -p 9100:9100 mobz/elasticsearch-head:5
这里那么9200,9300端口都可以使用了.9200是restapi访问的端口,9300是java访问的端口