@ 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!