在 Mac 上使用 Docker Desktop 安装后无法访问 Elastic Search

Can't access Elastic Search after installing using Docker Desktop on Mac

我在 mac。尝试 运行 Elastic Search 使用 Docker Desktop。下面是我运行的命令。我在 Kibana 中 运行 查询没问题,问题是我无法通过 localhost:9200 连接到 Elastic Search。请帮忙!!

    $docker network create elastic

    $docker pull docker.elastic.co/elasticsearch/elasticsearch:8.1.2


    $docker run --name es-node01 --net elastic -p 9200:9200 -p 9300:9300 -t docker.elastic.co/elasticsearch/elasticsearch:8.1.2

    $docker pull docker.elastic.co/kibana/kibana:8.1.2

    
$docker run --name kib-01 --net elastic -p 5601:5601 docker.elastic.co/kibana/kibana:8.1.2

请记住您的问题要具体。 “无法连接”- 尝试连接时会发生什么情况?

如果你得到的是

curl: (52) Empty reply from server

问题是elasticsearch 8.0+默认开启了安全,所以需要证书和密码。

完整说明在 elasticsearch website

但是新的两个步骤是:

复制证书:

docker cp es01:/usr/share/elasticsearch/config/certs/http_ca.crt .

并通过 curl 使用证书和密码:

curl --cacert http_ca.crt -u elastic https://localhost:9200

系统将提示您输入密码。 Elasticsearch 实例启动时会打印密码。是的,它被埋在日志输出中,但是有空行,不难发现。看起来像:

-> Elasticsearch security features have been automatically configured!
-> Authentication is enabled and cluster connections are encrypted.

->  Password for the elastic user (reset with `bin/elasticsearch-reset-password -u elastic`):
  PLoSd-3iJTncwmdSAwaku

->  HTTP CA certificate SHA-256 fingerprint:
  722460137abbd54249a056698d4ac3d05495de9c18e7ac4aba9e3e07814fe3c79

有一个额外的步骤(和相同的用户(elastic)和密码来访问 kibana。

这里的路线:https://www.elastic.co/guide/en/kibana/current/docker.html