Докер Графана с двумя InfluxDB: соединение отказано - PullRequest
0 голосов
/ 05 октября 2019

Я создал новый док-стек, где мне понадобится несколько экземпляров InflowDB, которые я не могу подключить к моей ATF-контейнере Grafana. Вот порт моего 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

Когда я пытаюсь создать новый источник данных InfxDB в Grafana с InflXD-2, я получаю Ошибка сети: Bad Gateway (502), файл журналапоказывает:

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

Есть идеи?

Спасибо

1 Ответ

1 голос
/ 05 октября 2019

@ hmm дает ответ.

Когда вы создаете сервисы в Docker Compose, вы:

  • можете получить доступ к контейнерам по имени сервиса. Grafana будет ссылаться на influxdb-2 по этому имени.
  • не способны изменять порты, которые предоставляет контейнер. На @hmm, influxdb-2 должен по-прежнему ссылаться на порт 8086, потому что это порт, который предоставляет контейнер;Вы не можете изменить его, если не измените образ.
  • Вы можете (но не обязаны) выставлять порты контейнеров хосту (используя --ports: [[HOST-PORT]]:[[CONTAINER-PORT]]

Если коротко, то служба InfluxDB в influxdb-2 должна указываться как influxdb-2:8086. Если вы хотите предоставить эту службу хосту (!), Вы можете сделать ports: - 12380:8086. Вы можете изменить значениеиз 12380 на что-то доступное на вашем хосте, но вы не можете изменить значение порта контейнера (8086).

Основная причина, по которой вы бы включили флаг --ports: в influxdb-2, - этоотладка с хоста. Но сервис grafana не требует этого. Он будет получать доступ к сервису influxdb-2 через сеть, предоставляемую Docker Compose через порт 8086.

You do хотите предоставить сервис grafana на хосте, потому что в противном случае он был бы недоступен для вас (с хоста). Это похоже на public | private. grafana является хостом public, но сервисы influxdb* могут быть хостомчастные, потому что они, как правило, только пСлужба grafana.

HTH!

...