- 进入es容器
- 删除原来的es容器,创建新es容器
- 系统调优
- 重新测试9200 9300端口
首先保证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可以远程访问了