首先保证es容器为启动的状态
执行命令 进入容器 es_为容器的名称
docker exec -it es_ /bin/bash
进入到es容器的config目录下,可以看到有elasticsearch.yml文件
执行exit命令,退出容器.
执行如下的命令,把容器中的elasticsearch.yml文件,复制到宿主机中
docker cp es_:/usr/share/elasticsearch/config/elasticsearch.yml /usr/share/elasticsearch.yml
由于之前的es容器,已经无法修改elasticsearch.yml,因此需要删除,重新创建新的es容器,来进行elasticsearch.yml文件的挂载.
分别执行如下的命令,进行容器的删除
执行如下的命令,创建新的es容器
docker run -d -p 9200:9200 -p 9300:9300 --name="es_" -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -v /usr/share/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml elasticsearch:5.6.8
其中为进行文件的挂载. 前面的路径为宿主机的yml路径. 后面的路径为容器的路径
-v /usr/share/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
执行vim /usr/share/elasticsearch.yml
,编译如下的yml
放开注释为transport.host: 0.0.0.0 这一行
重启es容器
docker restart es_
执行 docker ps , 过了一段时间后, es容器没有在运行中了.
原因是放开yml中的注释后,需要进行系统的调优, 需要更多的内存
执行命令
vi /etc/security/limits.conf
在文件的末尾追加如下的两行内容
* soft nofile 65536
* hard nofile 65536
nofile是单个进程允许打开的最大文件个数 soft nofile 是软限制 hard nofile是硬限制
接着执行命令
vi /etc/sysctl.conf
在文件的末尾追加内容
vm.max_map_count=655360
用于限制一个进程可以拥有的VMA(虚拟内存区域)的数量
执行下面命令 修改内核参数马上生效
sysctl -p
执行命令
reboot
重启Linux
执行命令
docker start es_
用来启动es容器.
执行命令
docker ps
稍待片刻,可以看到es已经可以在后台运行了
测试9200
在postman发送如下的put请求
测试9300
启动tensquare_search项目.
发送如下的post请求,响应为新增成功, 代表9300可用. es可以远程访问了