docker - 从外部 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"
]
我在做什么错?
解决方案
在拉下你之后,你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.
推荐阅读
- javascript - 使用 Npm 作为不同配置的构建工具
- angular - 如何使用 Angular 7 标准翻译从 .ts 文件中翻译文本
- javascript - 如何从 RadListView 中的标签更改属性
- c# - .Net 4.5 程序集注册由 2.0
- c# - 如何在循环之前定义mysql参数min(date)和max(date)
- javascript - Slack API:在 conversations.members 请求中忽略已删除/停用的用户
- python - 将数据添加到现有的 Excel 工作表
- angular - 我如何在 ion-toggle 上调用两个不同的 highcharts?
- php - ErrorException htmlspecialchars() 期望参数 1 是字符串,给定数组
- python - 如何从 python 中的网络套接字解压缩 LZW 数据包?