【问题标题】:How to map elasticsearch port from 9200 to 92xx when running in kibana with docker-compose使用 docker-compose 在 kibana 中运行时如何将弹性搜索端口从 9200 映射到 92xx
【发布时间】:2019-05-21 11:24:23
【问题描述】:

我有一个定义了 elasticsearch 和 kibana 的 docker-compose.yaml 文件。

当我运行 docker-compose 时,我将能够使用 url http://localhost:8181 访问 kibana,并且一切都按预期运行。但是,我的问题是我不想在 kibana 中使用 elasticsearch 端口 9200,我想使用另一个端口(例如 9201)

如何在 kibana 中使用 9200 以外的端口进行 elasticsearch 连接?

我尝试在下面添加以下内容,但出现错误 “无法通过 http://elasticsearch:9201 连接到 Elasticsearch。”

elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch-oss:6.2.3
    environment:
        discovery.type: single-node
    ports:
        -"9201:9200"

kibana:
    depends_on:
        - elasticsearch
    image: docker.elastic.co/kibana/kibana-oss:6.2.3
    environment:
        SERVER_NAME: "s_name"
        ELASTICSEARCH_URL: http://elasticsearch:9201
    ports:
        - "8181:5601"

以下内容适用于端口 9200

elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch-oss:6.2.3
    environment:
      discovery.type: single-node

kibana:
    depends_on:
      - elasticsearch
    image: docker.elastic.co/kibana/kibana-oss:6.2.3
    environment:
      SERVER_NAME: "s_name"
      ELASTICSEARCH_URL: http://elasticsearch:9200
    ports:
      - "8181:5601"

【问题讨论】:

  • 嗨,您能告诉我们最终的解决方案是什么吗?我在这里面临同样的问题
  • 谢谢,我搞定了

标签: docker elasticsearch docker-compose kibana


【解决方案1】:

ELASTICSEARCH_URL: http://elasticsearch:9201

改为将其设置为 ELASTICSEARCH_URL: http://elasticsearch:9200

"9201:9200" 从容器端口映射到主机端口。也就是说,它将 9201 暴露在您主机的网络接口上,并将其转发到容器中的端口 9200。

但是,您的 Kibana 服务正试图连接到 elasticsearch 的 9201 - 不同 容器在不同的网络上使用不同的 IP 地址,而不是 127.0.0.1,并且在该网络中,容器正在端口 9200 上运行进程。

编辑:再次阅读,您可以配置端口Configure port number of ElasticSearch。尝试在环境中设置http.port(基于https://www.elastic.co/guide/en/elasticsearch/reference/current/docker.html#docker-configuration-methods):

elasticsearch: image: docker.elastic.co/elasticsearch/elasticsearch-oss:6.2.3 environment: discovery.type: single-node http.port: 9201-9301 ports: -"9201:9201"

【讨论】:

  • 在这种情况下,我有 2 个 elasticsearch 和 kibana 实例正在运行,我希望在从 localhost 访问 kibana 时两者都能工作。更改端口并没有解决问题,但它允许一项服务工作。使用 docker-compose 时使两者都能工作的任何可能的解决方案
  • “它没有解决问题,但它允许一项服务工作”是什么意思?
  • 我想要做的是我有 2 项服务。在这 2 个服务中,我有 docker-compose.yaml 文件。当我把它们都提出来时,弹性搜索在 kibana 中不起作用。我认为更改弹性搜索的端口号可以解决问题。有什么解决办法?
  • 我可以看看您的docker-compose.yaml 文件,其中包含服务和 Kibana 吗?假设您在不同的端口上运行其中一个 ES,并且您修改了 Kibana 以在该特定端口上连接到该 ES,那么您应该没有任何问题。
  • 它在运行多个实例时工作。我不得不在 docker -> preferences -> advanced 下将内存更改为 4GB
猜你喜欢
  • 2019-02-25
  • 1970-01-01
  • 2022-10-17
  • 2016-01-31
  • 2014-06-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-25
相关资源
最近更新 更多