首页 > 解决方案 > 从外部 docker 容器访问 url 时遇到问题

问题描述

我有一个 docker 容器,其中 Prometheus 指标在端口 127.0.0.1:9615 上运行

我想从我的主机访问这些指标,所以我做了端口绑定 0.0.0.0:9615->9615。但仍然无法 curl url localhost:9615/metrics 给我一个响应

curl:(56)Recv失败:对等方重置连接

我的 docker-compose 文件看起来像这样

version: '2'

services:
  polkadot:
    container_name: polkadot
    image: parity/polkadot
    ports:
      - 30333:30333 # p2p port
      - 9933:9933 # rpc port
      - 9944:9944 # ws port
      - 9615:9615
    command: [
      "--name", "PolkaDocker",
      "--ws-external",
      "--rpc-external",
      "--rpc-cors", "all"
    ]

我在做什么错?

标签: dockerdocker-compose

解决方案


在拉下你之后,你docker-compose.yaml似乎只是错过了一个额外的 CLI 标志--prometheus-external

更新了 docker-compose.yaml:

version: '2'

services:
  polkadot:
    container_name: polkadot
    image: parity/polkadot
    ports:
      - 30333:30333 # p2p port
      - 9933:9933 # rpc port
      - 9944:9944 # ws port
      - 9615:9615
    command: [
      "--name", "PolkaDocker",
      "--ws-external",
      "--rpc-external",
      "--rpc-cors", "all",
      "--prometheus-external" # NEW FLAG HERE
    ]

现在,如果您点击localhost:9615/metrics,您应该会看到数据:

# HELP polkadot_block_height Block height info of the chain
# TYPE polkadot_block_height gauge
polkadot_block_height{status="best"} 0
polkadot_block_height{status="finalized"} 0
# HELP polkadot_block_verification_and_import_time Time taken to verify and import blocks
# TYPE polkadot_block_verification_and_import_time histogram
polkadot_block_verification_and_import_time_bucket{le="0.005"} 1076
...

基于 CLI polkadot --help,标志的描述如下:

$ polkadot --help
polkadot 0.9.8-3a10ee63c-x86_64-linux-gnu

Parity Technologies <admin@parity.io>
Polkadot Relay-chain Client Node

USAGE:
    polkadot [FLAGS] [OPTIONS]
    polkadot <SUBCOMMAND>

FLAGS:
...
--prometheus-external
    Listen to all Prometheus data source interfaces.

    Default is local.

推荐阅读