具有两个InfluxDB的Docker Grafana:连接被拒绝

时间:2019-10-05 16:25:57

标签: docker grafana influxdb

我创建了一个新的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

有什么想法吗?

谢谢

1 个答案:

答案 0 :(得分:1)

@hmm提供了答案。

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

  • 能够通过服务名称访问容器。 Grafana将使用该名称引用Read Less
  • 不能不能更改容器公开的端口。对于每个@hmm,必须在端口influxdb-2上引用influxdb-2,因为这是容器公开的端口。您除非更改图片,否则无法更改。
  • 您可以(但不必)将容器的端口暴露给主机(使用8086

长期以来,它的不足之处是--ports: [[HOST-PORT]]:[[CONTAINER-PORT]]中的InfluxDB服务应引用为influxdb-2。如果要将此服务公开给主机(!),可以执行influxdb-2:8086。您可以将ports: - 12380:8086的值更改为主机上可用的值,但不能更改容器端口(12380)的值。

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

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

HTH!