我创建了一个新的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
有什么想法吗?
谢谢
答案 0 :(得分:1)
@hmm提供了答案。
在Docker Compose中创建服务时,您:
Read Less
。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!