daemon.json不支持配置metrics端点,必须通过dockerd命令行参数--metrics-addr显式启用,如--metrics-addr 127.0.0.1:9323,并通过systemd覆盖配置持久化,端点返回prometheus格式指标。
daemon.json 本身不提供直接开启或配置守护进程指标(如 prometheus metrics)的字段。docker 守护进程的指标暴露能力需通过启动参数启用,而非 json 配置文件控制。
守护进程指标需要显式启用 HTTP 端点
Docker 默认不暴露任何监控指标。要获取 CPU、内存、容器数、镜像数等运行时指标,必须在 dockerd 启动时添加 --metrics-addr 参数,例如:
dockerd --metrics-addr 127.0.0.1:9323- 该地址会暴露符合 Prometheus 格式的文本指标(
/metrics) - 仅监听本地回环更安全;若需远程采集,可改用
0.0.0.0:9323并配合防火墙限制
不能写进 daemon.json,但可通过 systemd 持久化
因为 --metrics-addr 是 dockerd 的命令行参数,不是 daemon.json 支持的配置项,所以需通过 systemd 覆盖配置来固化:
- 创建
/etc/systemd/system/docker.service.d/metrics.conf - 写入以下内容:
ExecStart=
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --metrics-addr 127.0.0.1:9323
注意:第一行 ExecStart= 是清空原有启动命令,第二行才重新定义完整命令(含 metrics 地址)。
DMap GL地图JSAPI(dmapgl)开发指南。用于编写、审查、调试 DMap 地图 API 代码,涵盖地图初始化、覆盖物渲染、图层管理、事件处理、控件交互等任务。当用户提及 dmap、dmapgl、jsapi‑gl 或相关地图开发需求时自动触发。
验证指标是否生效
重启服务后执行:
sudo systemctl restart docker-
curl http://127.0.0.1:9323/metrics 2>/dev/null | head -n 5→ 应看到类似# HELP go_gc_duration_seconds的指标输出 - 也可用
ss -tlnp | grep :9323确认端口已监听
配套建议:限制访问与集成监控
暴露指标端点后,建议同步做两件事:
- 用 nginx 或 socat 做反向代理,增加 Basic Auth 或 IP 白名单(Docker 自身不支持认证)
- Prometheus 配置 job 抓取该地址,job 名建议设为
docker-daemon,便于区分容器指标 - 注意指标中
docker_daemon_*开头的才是守护进程自身指标,container_*属于 cAdvisor 抓取的容器维度数据(需额外启用 cAdvisor)










