> 技术文档 > 在 Ubuntu 22.04 上运行 cAdvisor 时遇到 mountpoint for cpu not found 错误

在 Ubuntu 22.04 上运行 cAdvisor 时遇到 mountpoint for cpu not found 错误

通常是由于 cgroup v2 导致的兼容性问题。Ubuntu 22.04 默认使用 cgroup v2,而旧版本的 cAdvisor 可能不完全支持它。以下是解决方案:

方法 1:启用 cgroup v1(推荐)

临时切换回 cgroup v1(cAdvisor 兼容性更好):

1、编辑 GRUB 配置:

sudo vi /etc/default/grub

 2、找到 GRUB_CMDLINE_LINUX,并添加:

systemd.unified_cgroup_hierarchy=0

 例如:

GRUB_CMDLINE_LINUX=\"systemd.unified_cgroup_hierarchy=0\"

 3、更新 GRUB 并重启

sudo update-grub
sudo reboot

4、重启后,检查是否已切换回 cgroup v1

stat -fc %T /sys/fs/cgroup/

  • 如果返回 tmpfs 或 cgroup → cgroup v1(成功)

  • 如果返回 cgroup2fs → cgroup v2(未生效)

 5、重新运行 cAdvisor:

docker run \\
  --volume=/:/rootfs:ro \\
  --volume=/var/run:/var/run:ro \\
  --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 \\
  --publish=18080:8080 \\
  --detach=true \\
  --name=cadvisor \\
  --privileged \\
  --device=/dev/kmsg \\
  google/cadvisor:latest

 

方法 2:使用支持 cgroup v2 的 cAdvisor 版本

如果不想切换回 cgroup v1,可以尝试较新版本的 cAdvisor(如 v0.47.0+):

docker run \\
  --volume=/:/rootfs:ro \\
  --volume=/var/run:/var/run:ro \\
  --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 \\
  --publish=18080:8080 \\
  --detach=true \\
  --name=cadvisor \\
  --privileged \\
  --device=/dev/kmsg \\
  gcr.io/cadvisor/cadvisor:v0.47.0

 验证 cAdvisor 是否运行成功

docker logs cadvisor

如果成功,访问 http://:18080 应该能看到 cAdvisor 的监控界面。