【问题标题】:Docker Grafana with two InfluxDBs: Connection refused带有两个 InfluxDB 的 Docker Grafana:连接被拒绝
【发布时间】:2020-02-03 14:35:20
【问题描述】:

我创建了一个新的 docker-stack,我需要几个 influxdb 实例,但我无法连接到我的 grafana 容器 atm。这是我的 docker-compose.yml 的一个端口

services:
  grafana:
    image: grafana/grafana
    container_name: grafana
    restart: always
    ports:
      - 3000:3000
    networks:
      - monitoring
    volumes:
      - grafana-volume:/var/lib/grafana

  influxdb:
    image: influxdb
    container_name: influxdb
    restart: always
    ports:
      - 8086:8086
    networks:
      - monitoring
    volumes:
      - influxdb-volume:/var/lib/influxdb

  influxdb-2:
    image: influxdb
    container_name: influxdb-2
    restart: always
    ports:
      - 12380:12380
    networks:
      - monitoring
    volumes:
      - influxdb-volume-2:/var/lib/influxdb

当我尝试使用 influxdb-2 在 grafana 中创建新的 influxdb 数据源时,出现网络错误:错误网关(502),日志文件显示:

2782ca98a4d7_grafana | 2019/10/05 13:18:50 http: proxy error: dial tcp 172.20.0.4:12380: connect: connection refused

有什么想法吗?

谢谢

【问题讨论】:

  • 为什么influxdb-2 公开12380 而不是8086
  • 因为我需要两个容器的电源。我想我需要单独解决它们?
  • 你没有。如果,它将是12380:8086,除非您更改端口 influxdb 正在侦听 influxdb-2。

标签: docker grafana influxdb


【解决方案1】:

@hmm 提供了答案。

当您在 Docker Compose 中创建服务时,您:

  • 能够通过服务名称访问容器。 Grafana 将通过该名称引用 influxdb-2
  • 能够更改容器公开的端口。根据@hmm,influxdb-2 仍必须在端口8086 上引用,因为这是容器公开的端口;除非您更改图像,否则您无法更改它。
  • 你可以(但你不需要)将容器的端口暴露给主机(使用--ports: [[HOST-PORT]]:[[CONTAINER-PORT]]

总而言之,influxdb-2 中的 InfluxDB 服务应引用为 influxdb-2:8086。如果您想将此服务公开给主机(!),您可以使用ports: - 12380:8086。您可以将 12380 的值更改为主机上可用的值,但不能更改容器端口 (8086) 的值。

influxdb-2 上包含--ports: 标志的主要原因是为了从主机进行调试。但是grafana 服务不需要这个。它将通过 Docker Compose 在端口8086 上提供的网络访问influxdb-2 服务。

确实想要在主机上公开grafana 服务,否则,您(从主机)将无法访问它。它类似于公共|私人。 grafana 是主机公共的,但 influxdb* 服务可能是主机私有的,因为它们通常只有 grafana 服务需要。

HTH!

【讨论】:

  • 对不起,我发布了错误的文件版本。我已经将 12380:8086 用于 influxdb-2,这给了我这个错误。所以这不是解决方案
  • 您不能使用 12380grafana 引用 influxdb-2grafana 服务通过名称和使用端口 8086 知道 influxdb-2。该错误表明您通过端口12380 错误地引用influxdb-2:tcp 172.20.0.4:12380:连接:连接被拒绝
  • @Ochzo 那么请通过编辑更新问题。
  • 还有一点需要注意:无需手动设置网络。 docker-compose 会自动创建一个网络。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-12
  • 1970-01-01
  • 2017-07-10
  • 2018-07-03
  • 2020-02-22
相关资源
最近更新 更多