如果没有安装docker,那么参考我这篇文章: Centos7安装docker并更改阿里云下载镜像地址
1.1 搜索ES服务镜像
docker search elasticsearch
1.2 拉镜像
我这里安装的版本是5.6.8,如果不指定版本,默认拉取最新
docker pull elasticsearch:5.6.8
1.3 查看镜像
docker images
为什么需要挂载文件呢?因为ES自从版本5.0之后默认不开启远程连接,所以要挂载配置文件开启远程连接
docker run -di --name=elasticsearch -p 9200:9200 -p 9300:9300 elasticsearch:5.6.8
这一步是为了看配置文件在那个目录下,方便copy
docker exec -it elasticsearch /bin/bash
我们看到elasticsearch所在的目录为/usr/share/elasticsearch ,进入config看到了配置文件
退出容器输入命令 exit
,执行以下命令拷贝配置文件
docker cp elasticsearch:/usr/share/elasticsearch/config/elasticsearch.yml /usr/share/elasticsearch.yml
docker stop elasticsearch
docker rm elasticsearch
执行命令 vim /usr/share/elasticsearch.yml
配置文件把 transport.host: 0.0.0.0
前面的注释 # 删掉,保存退出,开发测试阶段可以这么做,生产环境下指定具体的IP
执行命令 : vim /etc/security/limits.conf
,追加内容保存退出,nofile是单个进程允许打开的最大文件个数 soft nofile 是软限制 hard nofile是硬限制,打开更多的文件以及虚拟内存
* soft nofile 65536
* hard nofile 65536
执行命令 :vim /etc/sysctl.conf
,追加内容,限制一个进程可以拥有的VMA(虚拟内存区域)的数量
vm.max_map_count=655360
执行下面命令 修改内核参数马上生效
sysctl ‐p
docker run -di --name=elasticsearch -p 9200:9200 -p 9300:9300
-v /usr/share/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml elasticsearch:5.6.8
IK分词器文件没下载的参考这篇文章: windows10安装ElasticSearch与Head-master+IK分词器安装与自定义词库
上传IK文件
把 IK 文件上传到任意目录,我这里上传到 /usr/local 下了
将 IK 文件夹拷贝到容器内 /usr/share/elasticsearch/plugins 目录下
docker cp /usr/local/IK elasticsearch:/usr/share/elasticsearch/plugins/
重启容器
docker restart elasticsearch
执行命令 : vim /usr/share/elasticsearch.yml
,这个文件是之前配置ES容器时copy出来的,追加内容
http.cors.enabled: true
http.cors.allow-origin: "*"
docker restart elasticsearch
执行到这里的时候,windows上的head插件已经可以连接docker上的ES服务器了
如果没有windows版的Head插件,那么执行以下操作
拉取Head插件
docker pull mobz/elasticsearch-head:5
启动Head插件
docker run -di --name=myhead -p 9100:9100 docker pull mobz/elasticsearch-head:5
浏览器访问: http://IP地址:9100/
即可访问