You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过HTTPS暴露Docker daemon的metrics指标?

Docker daemon 的 --tls* 系列参数仅作用于Docker核心API的默认监听端口(2375/2376),metrics端点是独立的监听服务,目前官方未提供直接配置TLS的能力,你之前的配置不生效属于预期行为。可通过以下两种方案实现HTTPS暴露:

方案1:反向代理封装(推荐)

在本地部署一层反向代理(Nginx/Caddy等)做TLS卸载,原生metrics端点保持监听本地回环地址即可,不对外暴露。
以Nginx为例配置参考:

server {
    listen 9324 ssl;
    server_name your-hostname;

    # 配置SSL证书路径
    ssl_certificate /path/to/your/cert.pem;
    ssl_certificate_key /path/to/your/key.pem;
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers HIGH:!aNULL:!MD5;

    # 可选:配置IP访问限制
    allow 192.168.1.0/24;
    deny all;

    # 可选:配置基础认证
    auth_basic "Docker Metrics";
    auth_basic_user_file /etc/nginx/.htpasswd;

    location /metrics {
        proxy_pass http://127.0.0.1:9323/metrics;
        proxy_set_header Host $host;
    }
}

配置完成后重启Nginx,即可通过https://your-hostname:9324/metrics访问带TLS加密的指标接口,Prometheus采集时在对应job下配置tls_config适配证书即可。

方案2:通过现有Exporter中转

如果你的环境已经部署了带TLS配置的node_exporter,可以借助其textfile收集器实现中转:

  • 新建定时任务,每分钟拉取本地metrics写入指定目录:
* * * * * root curl http://127.0.0.1:9323/metrics > /var/lib/node_exporter/docker_metrics.prom
  • 配置node_exporter启用textfile收集器,同时开启TLS配置,即可从node_exporter的HTTPS端点获取Docker daemon指标。

注意事项

  • 无论使用哪种方案,都要配置防火墙规则禁止外部直接访问原生metrics端口9323
  • 生产环境不推荐在Prometheus配置中跳过证书校验,建议使用内部CA签发的证书做双向认证

内容的提问来源于stack exchange,提问作者Roy van Santen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 09:06:11