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

toiithl6  于 2023-04-05  发布在  Docker
关注(0)|答案(1)|浏览(184)

我创建了一个新的docker-stack,其中我需要几个influxdb示例,我无法连接到我的grafana容器atm。

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

有什么想法吗
谢谢

ldioqlga

ldioqlga1#

@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服务需要。

相关问题