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":"elasticsearch[es0031][generic][T#1]","log.logger":"org.elasticsearch.discovery.HandshakingTransportAddressConnector","elasticsearch.node.name":"es0031","elasticsearch.cluster.name":"tsc","error.type":"org.elasticsearch.transport.ConnectTransportException","error.message":"[es0011][192.168.32.2:9300] connect_timeout[30s]","error.stack_trace":"org.elasticsearch.transport.ConnectTransportException: [es0011][192.168.32.2:9300] connect_timeout[30s]\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":"elasticsearch[es0031][cluster_coordination][T#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
相关推荐
Elastic 中国社区官方博客8 分钟前
Elastic 为什么捐赠其 OpenTelemetry PHP 发行版
大数据·开发语言·elasticsearch·搜索引擎·信息可视化·全文检索·php
灰阳阳1 小时前
Docker镜像远程(离线)迁移教程
运维·docker·容器
糟糕喔4 小时前
harbor私有仓库搭建
运维·docker·云原生·容器·kubernetes
wuyikeer5 小时前
Java进阶(ElasticSearch的安装与使用)
java·elasticsearch·jenkins
我爱学习好爱好爱6 小时前
Logstash 数据管道测试案例:从 Filebeat 接收日志并输出至黑屏幕与 Elasticsearch(基于Rocky Linux 9.6)
大数据·linux·elasticsearch
执笔为剑8 小时前
docker环境升级数据库
数据库·docker·容器
于眠牧北9 小时前
ubuntu22.04安装docker以及安装过程中报错解决方法
运维·docker·容器
FriendshipT10 小时前
算法部署知识点:TensorRT、Tensorflow、Flask、Docker、TFLite
算法·docker·flask·tensorflow
摇滚侠11 小时前
虚拟机部署龙虾 OpenClaw,VMware 安装 Linux CentOS 虚拟机操作系统,部署 Docker,部署 OpenClaw
linux·docker·centos