docker elasticsearch but could not connect to it at its publish address of

{"@timestamp":"2024-11-28T13:19:51.860Z", "log.level": "WARN", "message":"Successfully discovered master-eligible node {es0011}{FKHz7aIYQkeHqyD-yU3SZg}{dDTB3lswQZeX7UcqCYURjA}{es0011}{192.168.32.2}{192.168.32.2:9300}{cdfhilmrstw}{8.16.0}{7000099-8518000} at address 192.168.0.15:9300 but could not connect to it at its publish address of 192.168.32.2:9300. Each node in a cluster must be accessible at its publish address by all other nodes in the cluster. See https://www.elastic.co/guide/en/elasticsearch/reference/8.16/modules-network.html#modules-network-binding-publishing for more information.", "ecs.version": "1.2.0","service.name":"ES_ECS","event.dataset":"elasticsearch.server","process.thread.name":"elasticsearches0031genericT#1","log.logger":"org.elasticsearch.discovery.HandshakingTransportAddressConnector","elasticsearch.node.name":"es0031","elasticsearch.cluster.name":"tsc","error.type":"org.elasticsearch.transport.ConnectTransportException","error.message":"es0011192.168.32.2:9300 connect_timeout30s","error.stack_trace":"org.elasticsearch.transport.ConnectTransportException: es0011192.168.32.2:9300 connect_timeout30s\n\tat org.elasticsearch.server@8.16.0/org.elasticsearch.transport.TcpTransportChannelsConnectedListener.onTimeout(TcpTransport.java:1151)\\n\\tat org.elasticsearch.server@8.16.0/org.elasticsearch.common.util.concurrent.ThreadContextContextPreservingRunnable.run(ThreadContext.java:956)\n\tat java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)\n\tat java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)\n\tat java.base/java.lang.Thread.run(Thread.java:1575)\n"}

{"@timestamp":"2024-11-28T13:19:58.837Z", "log.level": "WARN", "message":"master not discovered yet, this node has not previously joined a bootstrapped cluster, and this node must discover master-eligible nodes es0011, es0012 to bootstrap a cluster: have discovered {es0031}{URFt4pBHR8m62zXmtfsJFg}{43qVd3RPRFeIfQcNDPXzRQ}{es0031}{172.19.0.3}{172.19.0.3:9300}{cdfhilmrstw}{8.16.0}{7000099-8518000}; discovery will continue using 192.168.0.15:9300, 192.168.0.15:9301 from hosts providers and {es0031}{URFt4pBHR8m62zXmtfsJFg}{43qVd3RPRFeIfQcNDPXzRQ}{es0031}{172.19.0.3}{172.19.0.3:9300}{cdfhilmrstw}{8.16.0}{7000099-8518000} from last-known cluster state; node term 0, last-accepted version 0 in term 0; for troubleshooting guidance, see https://www.elastic.co/guide/en/elasticsearch/reference/8.16/discovery-troubleshooting.html", "ecs.version": "1.2.0","service.name":"ES_ECS","event.dataset":"elasticsearch.server","process.thread.name":"elasticsearches0031cluster_coordinationT#1","log.logger":"org.elasticsearch.cluster.coordination.ClusterFormationFailureHelper","elasticsearch.node.name":"es0031","elasticsearch.cluster.name":"tsc"}

解决办法: 在 docker-compose.yml 文件中增加

复制代码
environment: 
   network.publish_host=希望别人知道的ip,而不是容器内的ip

另外要注意的是 在docker容器中启动时, 端口也要设置跟宿主机的一样

复制代码
- http.port=9201
- transport.port=9301
相关推荐
杨浦老苏3 小时前
把项目管理搬回自己服务器:Windshift部署与避坑
docker·项目管理·群晖
木雷坞3 小时前
Baserow Docker部署:导入设备借用CSV,再用表单新增登记
运维·docker·容器
YIN_尹4 小时前
【git原理与使用】git初识与安装
大数据·git·elasticsearch
wefg14 小时前
【Docker】基本指令
运维·docker·容器
牛马工作号6 小时前
Copyparty 轻量文件共享:Docker Compose 部署、权限与多协议使用全指南
运维·docker·容器
oioihoii7 小时前
Windows部署MySpeed自建测速服务:Docker运行后直接测速,再配置固定公网地址远程查看
运维·docker·容器
Elastic 中国社区官方博客9 小时前
Elastic 在《Forrester Wave™:2026 年第四季度智能运维平台》报告中被评为强劲表现者
大数据·运维·数据库·elasticsearch·搜索引擎·全文检索
Jack N9 小时前
【Strapi 系列之八】二次开发 + 生产部署,Docker + PostgreSQL + Nginx 一把梭
nginx·docker·postgresql·strapi
Elasticsearch9 小时前
Elastic Cloud 无服务器服务审计日志:将审计记录发送到可观测性或安全解决方案
elasticsearch
岁月宁静20 小时前
一个 AI 项目从本地到上线,要经过哪些步骤?全流程讲清楚
python·docker·agent