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

无法连接Docker自定义网桥网络:Prometheus无法抓取cAdvisor指标

Docker自定义网桥内容器连接问题排查与解决

1. 修复配置中的两处关键错误

你的问题主要来自Prometheus配置文件的两个问题:

  • 目标地址错误:在Docker自定义网桥网络中,localhost仅指向容器自身,而非同网络内的其他容器。你配置里的localhost:8080会让Prometheus尝试连接自己的8080端口,而非cAdvisor。
    修改方法:将prometheus.yml中cadvisor任务的targets改为容器名+端口:
    - job_name: cadvisor
      static_configs:
        - targets: ['cadvisor:8080']
    
    Docker自定义网桥默认支持容器名的DNS解析,同一网络内的容器可以直接通过容器名通信。
  • 配置语法错误:你的global段中scrape_interval: 15sscrape_configs:存在拼写错误,15s后没有换行就直接拼接了scrape_configs,会导致Prometheus无法正确加载配置。修正后应为:
    global:
      evaluation_interval: 15s
      scrape_interval: 15s
    scrape_configs:
    # ... 后续配置保持不变
    

2. 容器网络连通性验证步骤

如果修改配置后仍有问题,可以按以下步骤排查:

  • 验证容器间DNS解析:进入Prometheus容器,ping cAdvisor的容器名,确认解析正常:
    docker exec -it prometheus-server ping cadvisor
    
  • 测试端口连通性:用curl测试cAdvisor的服务端口:
    docker exec -it prometheus-server curl cadvisor:8080
    
    如果能返回cAdvisor的页面内容,说明网络和服务都正常。
  • 确认容器在同一网络:检查自定义网桥的容器列表,确保两个容器都已加入:
    docker network inspect prometheus-network
    
    在输出的Containers节点下,应同时看到prometheus-server和cadvisor的信息。

3. 其他排查点

  • 检查cAdvisor容器的8080端口是否正常监听:进入cAdvisor容器,执行ss -tulpn(若没有ss工具,可先安装apt install iproute2),确认8080端口处于监听状态。
  • 确认cAdvisor容器启动日志无错误:查看日志排查服务是否正常启动:
    docker logs cadvisor
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 11:10:23