Elasticsearch docker 容器在启动时挂起,没有错误

Elasticsearch docker container hanging on startup without error

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

我一直在关注 Elasticsearch 网站上提供的 setup,理论上我已经完成了创建开发容器似乎需要的唯一步骤,即 "run this command to start a development instance"。

日志最后几行输出如下:

{"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

我用来尝试访问该服务的 curl 是:

curl http://localhost:9200/_status

curl http://127.0.0.1:9200/_status

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

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

所述,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