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

Ubuntu22.04部署cAdvisor v0.36.0报无法获取"/"容器缓存错误

故障判定

该问题属于cAdvisor版本兼容性问题,不是Docker配置错误。
你使用的cAdvisor v0.36.0发布时间较早,未完全适配Ubuntu 22.04默认启用的cgroup v2、systemd cgroup驱动、rootless Docker运行模式的组合场景,无法正确读取cgroup层级的监控数据,最终触发unable to find data in memory cache报错。你环境中Docker启动日志打印的cpu、io cgroup资源不支持的警告,也对应了rootless模式下cgroup权限配置的场景特征,旧版cAdvisor无法兼容该环境。

修复方案

按实际需求选择以下任意一种方案即可:

  • 方案1:升级cAdvisor版本(推荐)
    升级到v0.44.0及以上的稳定版本,这类版本已经完成cgroup v2适配,启动时补全cgroup挂载路径与必要权限即可正常运行:
    # 先删除旧的异常容器
    docker rm -f cadvisor
    
    # 启动适配cgroup v2的新版cAdvisor
    docker run \
    --volume=/:/rootfs:ro \
    --volume=/var/run:/var/run:rw  \
    --volume=/sys:/sys:ro  \
    --volume=/var/lib/docker/:/var/lib/docker:ro  \
    --volume=/dev/disk/:/dev/disk:ro  \
    --volume=/sys/fs/cgroup:/sys/fs/cgroup:ro \
    --privileged \
    --publish=8080:8080  --detach=true \
    --name=cadvisor \
    gcr.io/google-containers/cadvisor:v0.47.0
    
  • 方案2:保留旧版cAdvisor,切换系统cgroup版本
    若必须使用v0.36.0版本,可将系统cgroup切回v1模式适配旧版本:
    1. 编辑grub配置文件/etc/default/grub,在GRUB_CMDLINE_LINUX_DEFAULT配置项末尾追加参数systemd.unified_cgroup_hierarchy=0
    2. 执行sudo update-grub更新系统引导配置
    3. 重启主机后重新启动cAdvisor容器即可
  • 方案3:调整cAdvisor启动参数绕过根容器探测
    如果不需要采集宿主机本身的监控数据,仅需要监控Docker运行的业务容器,可在启动命令后追加--docker_only=true参数,跳过对根容器/的指标采集,直接绕过该报错:
    # 先删除旧的异常容器
    docker rm -f cadvisor
    
    # 启动参数追加docker_only标识
    docker run \
    --volume=/:/rootfs:ro \
    --volume=/var/run:/var/run:rw  \
    --volume=/sys:/sys:ro  \
    --volume=/var/lib/docker/:/var/lib/docker:ro  \
    --volume=/dev/disk/:/dev/disk:ro  \
    --publish=8080:8080  --detach=true \
    --name=cadvisor \
    gcr.io/google-containers/cadvisor:v0.36.0 \
    --docker_only=true
    
验证方式

容器启动完成后等待10秒左右,访问localhost:8080,若能正常加载cAdvisor监控页面,无内存缓存相关报错即为修复成功。

内容的提问来源于stack exchange,提问作者Yan Paing Oo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 06:24:24