资讯动态

rootless Podman 下 Dozzle 容器内存统计不显示怎么配置 cgroup 委派?

发布时间:2026/9/15 15:39:12 来源:尧图企业网站定制
rootless Podman 下 Dozzle 容器内存统计不显示怎么配置 cgroup 委派【免费下载链接】dozzleRealtime log viewer for containers. Supports Docker, Swarm and K8s.项目地址: https://gitcode.com/GitHub_Trending/do/dozzleDozzle 对接 rootless PodmanCLI 或 Quadlet 启动时一个典型现象是 UI 里所有容器都不显示内存统计。Dozzle 的 Podman 部署指南明确指出这不是 Dozzle 侧的配置问题rootless 部署中memorycgroup 控制器默认没有委派delegate给用户 sliceDocker 兼容 API 因此拿不到内存用量。这篇文章的做法是先检查本机用户 slice 是否缺少memory委派缺失时通过一个 systemd drop-in 文件开启委派再重新验证。适用前提你的 Dozzle 容器已经通过某个用户的 rootless socket/run/user/UID/podman/podman.sock运行且确认处于 rootless 模式。如何启动 Dozzle 容器本身不在本文范围内可参考 docs/guide/podman.md 的 Rootless Setup 与 Quadlet Deployment 两节。先确认问题是否出在 cgroup 委派上检查当前用户 slice 实际拿到的控制器列表cat /sys/fs/cgroup/user.slice/user-$(id -u).slice/cgroup.controllers命令里的$(id -u)会由 shell 自动替换为当前用户的 UID可以直接执行。判断标准只有一条输出中有没有memory。输出里没有memory说明用户 slice 未被委派内存控制器这正是指南 FAQ “rootless 模式下缺少内存统计”一节给出的原因继续按下面配置委派。输出里已有memory但 UI 仍无统计本文依据的文档只覆盖 cgroup 委派这一条根因此情况需要另行排查指南没有给出进一步步骤。用 systemd drop-in 配置 cgroup 委派下面的命令会在/etc/systemd/system/user.service.d/下创建一个 drop-in 配置文件并重新加载 systemd 配置三条命令都需要 root 权限sudo。副作用说明mkdir -p幂等tee会把delegate.conf的内容写入该路径如果同名文件已存在且里面有你自定义的内容会被这段配置直接覆盖操作前请先确认daemon-reload只重载 systemd 配置不会重启任何服务。sudo mkdir -p /etc/systemd/system/user.service.d sudo tee /etc/systemd/system/user.service.d/delegate.conf EOF [Service] Delegatecpu cpuset io memory pids EOF sudo systemctl daemon-reloaddrop-in 的内容就是给user服务追加Delegatecpu cpuset io memory pids其中memory是让内存统计可见的关键项。使配置生效注销并重新登录或重启新的委派配置要在用户 slice 重建后才生效。指南给出的生效方式是退出当前登录会话再重新登录或者直接重启机器。仅执行daemon-reload而不重开会话正在运行的用户 slice 不会应用新委派。验证委派已生效重新登录后再次运行开头的检查命令cat /sys/fs/cgroup/user.slice/user-$(id -u).slice/cgroup.controllers这次输出中应包含memory。满足这一点后打开 Dozzle 页面容器列表中的内存统计即可正常显示。边界与限制指南的启动方式对照表里只有 Quadletsystemd一行的“Memory Stats”标记为 ✗注释为rootless 模式下除非启用了 cgroup v2 内存委派内存统计通常不可用。本文的委派配置针对的就是 rootless 这一情形。绑定了某个用户 rootless socket 的 Dozzle 只能看到该用户的容器其他用户的 rootless 容器在独立命名空间里不会出现。如果你遇到的是“容器整个看不到”而不是“内存统计缺失”那是跨用户可见性问题与 cgroup 委派无关指南给出的方案是用同一用户运行 Dozzle或改用 rootful 模式。委派配置修改的是主机上的 systemd 用户会话配置与 Dozzle 容器内的任何设置无关删除delegate.conf并daemon-reload、重开会话即可恢复原状恢复操作是本文的合理逆操作文档本身只描述了开启路径。【免费下载链接】dozzleRealtime log viewer for containers. Supports Docker, Swarm and K8s.项目地址: https://gitcode.com/GitHub_Trending/do/dozzle创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价