docker中挂载ES后,无法进行远程连接访问 9300端口NoNodeAvailableException[None of the configured nodes are available: [
最近使用ES过程中遇到以下一个问题,
本人在虚拟机中 使用docker挂载了 ES 容器 在idea中进行测试的时候 出现以下错误
配置文件内容如下 没有错误
解决方式
这种错误发生的原因是elasticsearch从5版本以后默认不开启远程连接,需要修改配置文件
需要修改相关配置文件。
博主用的是docker的容器,所以需要挂载配置文件来创建容器。
首先拷贝docker容器中的配置文件到宿主机
进入容器
docker exec -it tensquare_elasticsearch /bin/bash
此时,我们看到elasticsearch所在的目录为/usr/share/elasticsearch ,进入config看到了 配置文件elasticsearch.yml
很明显容器中是无法使用vi命令的,所以需要
exit退出容器
docker cp elasticsearch:/usr/share/elasticsearch/config/elasticsearch.yml /usr/share/elasticsearch.yml
完成配置文件拷贝
删除容器
docker stop 容器名字
docker rm 容器名字
创建新的容器,挂载宿主机的配置文件
docker run -di --name=ES01 -p 9200:9200 -p 9300:9300 -v /usr/share/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml elasticsearch
修改/usr/share/elasticsearch.yml 将transport.host:0.0.0.0前的#去掉后保 存文件退出。其作用是允许任何ip地址访问elasticsearch .开发测试阶段可以这么做,生 产环境下指定具体的IP