【问题标题】:Elasticsearch docker container hanging on startup without errorElasticsearch docker容器在启动时挂起而没有错误
【发布时间】:2019-06-23 13:57:51
【问题描述】:

我正在 Windows 10 Home 上的 Docker 中设置 Elasticsearch 实例(因此我使用 Docker Toolbox,因为我没有 Hyper-V)。在这一点上,我正在寻找的是一个正在运行的 Elasticsearch 实例,它是 curl-able。

我一直在关注 Elasticsearch 网站上提供的setup,理论上我已经完成了创建开发容器所需的唯一步骤,即“运行此命令以启动开发实例”。

日志最后几行输出如下:

{"type": "server", "timestamp": "2019-06-23T13:30:22,989+0000", "level": "INFO", "component": "o.e.x.i.a.TransportPutLifecycleAction", "cluster.name": "docker-cluster", "node.name": "351001acfb2c", "cluster.uuid": "5KONF0ypTuWqfDJav1ludw", "node.id": "139z-22WSS6BpsLt49dnYg",  "message": "adding index lifecycle policy [watch-history-ilm-policy]"  }
{"type": "server", "timestamp": "2019-06-23T13:30:24,512+0000", "level": "INFO", "component": "o.e.l.LicenseService", "cluster.name": "docker-cluster", "node.name": "351001acfb2c", "cluster.uuid": "5KONF0ypTuWqfDJav1ludw", "node.id": "139z-22WSS6BpsLt49dnYg",  "message": "license [ec9b4a7e-7c13-4249-9378-b1dd17de1746] mode [basic] - valid"  }

它间歇性地写下一行,但它永远不会比这更进一步:

{"type": "server", "timestamp": "2019-06-23T13:52:58,676+0000", "level": "INFO", "component": "o.e.m.j.JvmGcMonitorService", "cluster.name": "docker-cluster", "node.name": "5bd339b9053c", "cluster.uuid": "9KC7mhtMSk-AhmmbSJ7pdA", "node.id": "K-A62Z4GTFylOFqL_B-bsg",  "message": "[gc][7] overhead, spent [269ms] collecting in the last [1s]"  }

我正在运行的命令是:

docker run -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:7.1.1

我用来尝试联系服务的curls 是:

curl http://localhost:9200/_status

curl http://127.0.0.1:9200/_status

这可能是我做错了,这完全是预期的行为,但这不能是curled,这看起来是你检查它是否有效的方法。任何建议都非常感谢!

【问题讨论】:

  • 您确认您的 Windows 机器上的 9200 端口上没有任何东西正在运行吗?如果有,您可以尝试映射到 Windows 上的不同端口。例如-p 19200:9200
  • 我可以确认 9200 或 9300 上没有运行任何东西——这很遗憾,因为这听起来是一个非常方便的答案!无论如何,谢谢您的帮助:)我不知道这是否是一种好习惯,但是您可以将答案添加为答案以防万一它对其他人有所帮助?

标签: elasticsearch docker-toolbox


【解决方案1】:

事实证明,这是 预期的行为,因为 Docker Toolbox 是 Hyper-V 不可用时的一种解决方法。

this Q&A 中所述,Docker Toolbox 使用的实际 IP 地址实际上是 192.168.99.100 而不是 127.0.0.1 或 0.0.0.0。

因此,要访问与 Elasticsearch 相关的任何内容(假设您的 Docker 容器已达到上述许可的程度),您的根地址应该是:

http://192.168.99.100:9200

http://192.168.99.100:9300

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-05-18
    • 2017-01-07
    • 2017-12-28
    • 1970-01-01
    • 2018-12-01
    • 2016-03-29
    • 2020-09-24
    相关资源
    最近更新 更多