1.启动两个容器用于测试

[root@host1 ~]# docker run --rm -d --name redis redis; \
docker run --rm -d -p 80:80 --name myweb httpd
91c25ff670d44495358476dc68c2e97b8f0db6df5c8f87c43d227ddf153cce8f
6365631d9ffd81b30ad003335a7e1110cc43ef95bdbd0800286de104c084ea28
[root@host1 ~]# docker ps | grep -E "redis|myweb"
6365631d9ffd   httpd      "httpd-foreground"        7 seconds ago   Up 6 seconds    0.0.0.0:80->80/tcp, [::]:80-
>80/tcp           myweb
91c25ff670d4   redis      "docker-entrypoint.s…"   7 seconds ago   Up 6 seconds    6379/tcp                     
                 redis

2.创建并启动 cAdvisor 容器

[root@host1 ~]# docker run --privileged -d \
--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 \
--publish=8080:8080 \
--name=cadvisor \
lagoudocker/cadvisor:v0.37.0
Unable to find image 'lagoudocker/cadvisor:v0.37.0' locally
v0.37.0: Pulling from lagoudocker/cadvisor
df20fa9351a1: Pull complete 
69166b12f0e3: Pull complete 
843794b5c008: Pull complete 
99bbb51fff9a: Pull complete 
Digest: sha256:aa9694377d3be56d53b81b0aeecd5880c0832100923e3ed50a8229ef3e1704b1
Status: Downloaded newer image for lagoudocker/cadvisor:v0.37.0
0dbc8a6698d23b1b346559e03b43b40c6f928ab12bf90053ed018086f8646e72

3.访问 cAdvisor 监控服务

        (http://192.168.197.9:8080/)

进入    Docker Containers  界面

        Subcontainers 显示正在运行的容器列表

4.cAdvisor 配置

[root@host1 ~]# 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 \
> --name cadvisor-stdout \
> lagoudocker/cadvisor:v0.37.0 \
> --storage_duration=5m0s --storage_driver=stdout >> data
W0915 15:08:04.595937       1 manager.go:159] Cannot detect current cgroup on cgroup v2
W0915 15:08:04.619068       1 nvidia.go:61] NVIDIA GPU metrics will not be available: no NVIDIA devices found
W0915 15:08:04.636104       1 manager.go:288] Could not configure a source for OOM detection, disabling OOM events: open /dev/kmsg: no such file or directory
^C
I0915 15:25:36.960861       1 manager.go:1185] Exiting thread watching subcontainers
I0915 15:25:36.960875       1 manager.go:403] Exiting global housekeeping thread
I0915 15:25:36.961011       1 cadvisor.go:245] Exiting given signal: interrupt

注意:

这些是 cadvisor 启动时的警告信息(非致命错误),不会影响其核心监控功能,容器通常已正常启动。以下是具体解释和验证方法:

  1. Cannot detect current cgroup on cgroup v2

    • 原因:你的系统使用了 cgroup v2(新一代进程资源管理机制),而 cadvisor 对 cgroup v2 的兼容检测存在小问题。
    • 影响:不影响基本的容器 / 主机资源监控(CPU、内存、磁盘等核心指标仍可采集)。
  2. NVIDIA GPU metrics will not be available: no NVIDIA devices found

    • 原因:系统中没有 NVIDIA 显卡,cadvisor 无法采集 GPU 相关指标。
    • 影响:仅 GPU 监控不可用,其他监控不受影响(如果你的环境没有 GPU,此警告可忽略)。
  3. Could not configure a source for OOM detection... open /dev/kmsg: no such file or directory

    • 原因:容器默认没有权限访问主机的 /dev/kmsg 设备(用于检测内存溢出事件)。
    • 影响:OOM(内存溢出)事件监控不可用,但不影响常规资源监控。

总结:这些警告是 cadvisor 对特定环境(如无 GPU、cgroup v2、权限限制)的正常提示,核心监控功能已正常工作,直接使用即可。

Logo

码道开发者社区,聚焦华为云码道 CodeArts 代码智能体,沉淀 Agent、Skill、鸿蒙开发实战内容,供开发者查阅资料、交流技术、分享工程实践

更多推荐