podman-system全局命令
我把它们和 system 组里其他几个常用命令放在一起整理了一下,方便你对比和使用。
| 命令 | 作用 | 主要用途 | 风险等级 |
|---|---|---|---|
podman system prune | 清理未使用的资源 | 日常清理,释放磁盘空间,如删除停止的容器、无用的镜像和网络。 | 中等(默认不删除卷,避免误删数据) |
podman system reset | 彻底重置存储 | 将 Podman 存储完全恢复到初始状态,用于切换存储驱动或解决严重的配置问题。 | 极高(会删除所有容器、镜像、卷等) |
podman system df | 查看磁盘使用情况 | 显示 Podman 在镜像、容器、卷和构建缓存上的磁盘占用,帮助决定是否需要清理。 | 只读 |
podman system info | 显示系统信息 | 查看 Podman 的配置、存储路径、驱动等详细信息,常用于排查问题。 | 只读 |
下面是更详细的说明:
podman system prune:日常清理的好帮手
这个命令用于安全地清理那些不再被 Podman 使用的资源。根据你的需求,可以通过一些选项来调整清理范围:
- 默认行为:只删除已停止的容器、未被使用的网络、悬空的镜像(dangling images) 和构建缓存。默认不会删除卷,以避免意外删除重要数据。
--all/-a:删除所有未使用的镜像,而不仅仅是悬空的。这会释放更多空间,但如果你有一些备用镜像,需要注意。--volumes:将未被任何容器使用的卷也纳入清理范围。这是一个危险的操作,使用前请务必确认卷中的数据不再需要。--build:删除因构建进程意外终止而遗留的构建容器。执行此操作时,要确保没有正在进行的构建任务,以免造成干扰。--filter:支持按条件筛选清理。例如,--filter until=2m会清理创建时间在2分钟之前的资源,--filter label=key=value则会清理带有指定标签的资源。--force/-f:强制执行,跳过交互式确认提示。
podman system reset:核武器级别的重置
这是一个操作不可逆的命令,它会将 Podman 的环境彻底“格式化”。
- 删除范围:删除所有 Pod、容器、镜像、网络、卷、机器以及构建缓存。
- 删除目录:还会删除配置文件中指定的存储根目录(
graphRoot,如/var/lib/containers/storage)和运行根目录(runRoot)。 - 主要场景:这个命令主要用于更换存储驱动(例如从
vfs切换到overlay)或修改storage.conf中的核心存储路径之前。通过重置,可以避免新旧配置混杂导致的问题。 --force/-f:同样可以跳过确认提示。
其他 system 子命令
podman system 下还有一些其他有用的命令:
podman system df:类似 Linux 的df命令,用于查看 Podman 各类资源(镜像、容器、卷等)的磁盘使用情况,是评估是否需要执行prune的好工具。podman system info:显示 Podman 客户端的详细信息,包括版本、存储驱动、文件路径、注册表配置等,是故障排查时的首要信息来源。podman system events:实时显示 Podman 守护进程生成的事件流,用于监控和调试。podman system service:将 Podman 作为一个长期运行的 API 服务来启动。