我创建了一个新的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
有什么想法吗
谢谢
1条答案
按热度按时间ldioqlga1#
@hmm提供了答案。
当你在Docker Compose中创建服务时,你:
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
服务需要。