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

Docker容器内Prometheus无法连接本地Docker守护进程问题咨询

解决Docker容器内Prometheus连接主机Docker守护进程的问题

问题核心

两个关键阻碍:一是Docker守护进程的metrics服务仅绑定127.0.0.1,容器无法跨网络访问;二是Linux环境下host.docker.internal默认不被容器DNS解析。


步骤1:修改Docker守护进程监听地址

当前daemon.json里的metrics-addr仅对主机本地开放,需调整为允许外部访问:

  1. 编辑daemon.json(Linux路径通常为/etc/docker/daemon.json):
{
  "metrics-addr": "0.0.0.0:9323"
}
  1. 重启Docker服务生效:
# Linux系统执行
systemctl restart docker

# Windows/macOS:在Docker桌面应用中点击「Restart」按钮

步骤2:让容器能访问主机的metrics服务

根据操作系统选择对应方案:

  • Linux环境:
    host.docker.internal不是Docker默认解析项,需在docker-compose.yml的Prometheus服务中添加主机映射:

    services:
      prometheus:
        # 保留原有配置,新增下面内容
        extra_hosts:
          - "host.docker.internal:host-gateway"
    

    也可以直接在prometheus.yml的targets里替换为主机的局域网IP(比如192.168.1.10:9323)。

  • Windows/macOS环境:
    host.docker.internal默认支持,若仍解析失败,同样可添加上述extra_hosts配置,或直接使用主机IP。

步骤3:验证配置有效性

  1. 重启Docker Compose服务:
docker compose down && docker compose up -d
  1. 进入Prometheus容器测试连通性:
docker exec -it <prometheus容器名称> curl http://host.docker.internal:9323/metrics

若能正常返回metrics数据,说明配置生效。


内容的提问来源于stack exchange,提问作者user3732793

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 22:37:16