Docker Compose部署ES与Kibana时遭遇ECONNREFUSED连接错误求助
解决Elasticsearch连接ECONNREFUSED 9200问题的排查步骤
以下是针对你遇到的FSCrawler无法连接Elasticsearch问题的具体排查和修复步骤:
检查Elasticsearch容器状态与日志
先确认Elasticsearch是否真的启动成功:docker-compose logs elasticsearch重点看日志里的报错,比如常见的内存不足问题(Elasticsearch默认要求至少2GB内存),如果是这个问题,在
.env文件里添加:ES_JAVA_OPTS="-Xms1g -Xmx1g"或者在
docker-compose.yml的elasticsearch服务中添加内存限制:deploy: resources: limits: memory: 2g验证容器间网络连通性
进入FSCrawler容器内部,直接测试和Elasticsearch容器的连通性:docker-compose exec fscrawler curl http://elasticsearch:9200这里必须用容器名
elasticsearch作为主机名(Docker Compose默认会在自定义网络中解析容器名),如果用宿主机IP可能因为网络隔离导致无法访问。确认Elasticsearch核心配置
在docker-compose.yml的elasticsearch服务环境变量中,确保以下参数正确设置:environment: - discovery.type=single-node - xpack.security.enabled=false - xpack.security.enrollment.enabled=false - xpack.security.http.ssl.enabled=false - network.host=0.0.0.0discovery.type=single-node是单节点部署的关键配置,缺失会导致Elasticsearch卡在集群发现阶段无法正常提供服务。统一容器网络配置
确保三个服务都加入同一个自定义网络,避免默认网络的隔离问题:networks: es-cluster: driver: bridge services: elasticsearch: # 其他配置... networks: - es-cluster kibana: # 其他配置... networks: - es-cluster fscrawler: # 其他配置... networks: - es-cluster检查FSCrawler的连接配置
打开FSCrawler的_settings.json文件,确认elasticsearch地址配置为:"elasticsearch": { "url": "http://elasticsearch:9200" }不要使用
localhost或宿主机IP,容器内的localhost指向容器自身,无法访问宿主机或其他容器。
内容的提问来源于stack exchange,提问作者MiThyX
相关产品推荐
相关产品推荐

