别再让Docker占满你的硬盘!一篇搞定docker system所有命令

简介: 本指南详解 `docker system` 命令组,助你精准诊断与优雅清理 Docker 占用空间:`df` 查磁盘、`prune` 清资源、`info` 看配置、`events` 监事件。覆盖安全清理策略、自动化脚本与环境最佳实践,告别“磁盘爆满”焦虑。(239字)

从磁盘爆满到优雅清理,Docker系统管理完全指南

“我的虚拟机又提示磁盘空间不足了!”

相信每个Docker用户都经历过这样的时刻。打开虚拟机一看,镜像、容器、卷、构建缓存,加起来轻松占据几十GB。Docker是怎么悄悄吃掉你的硬盘的?又如何优雅地清理它们?

答案就在 docker system 这组命令里。

docker system 是 Docker 提供的一组管理命令,用于查看和管理 Docker 守护进程的整体状态、磁盘使用情况、系统信息等。它不直接操作容器或镜像,而是从全局视角管理 Docker 引擎本身。

所有子命令概览

命令 作用 常用程度
docker system df 显示 Docker 磁盘使用情况 ⭐⭐⭐⭐⭐
docker system prune 删除未使用的 Docker 对象 ⭐⭐⭐⭐⭐
docker system info 显示系统范围的信息 ⭐⭐⭐⭐
docker system events 获取 Docker 守护进程的实时事件 ⭐⭐⭐
docker system dial-stdio 管理 Docker 守护进程的连接(高级)

各命令详细说明

1. docker system df - 查看磁盘使用情况

最常用的命令,用于查看 Docker 占用了多少磁盘空间。

基本用法:

docker system df

输出示例

TYPE            TOTAL     ACTIVE    SIZE      RECLAIMABLE
Images          21        21        8.797GB   460.6MB (5%)
Containers      24        24        565MB     0B (0%)
Local Volumes   8         8         123MB     0B (0%)
Build Cache     20        0         922.7MB   922.7MB

各列含义

  • TYPE: 对象类型(镜像、容器、卷、构建缓存)
  • TOTAL: 总数量
  • ACTIVE: 正在使用的数量
  • SIZE: 占用空间大小
  • RECLAIMABLE: 可以回收(删除)的空间大小及百分比

详细模式(显示每个对象):

docker system df -v

这会列出每个镜像、容器、卷的具体信息,适合深入分析空间占用。

实用示例:

# 查看所有对象的详细信息,排序查看最大的镜像
docker system df -v | grep -A 10 "Images"

# 只查看镜像占用
docker system df | grep Images

# 查看格式化的输出(JSON格式)
docker system df --format "json"

2. docker system prune - 清理未使用对象

清理命令,删除不再使用的 Docker 对象以释放空间。

完整参数表:

参数 说明 删除内容
无参数 基础清理 停止的容器、未使用的网络、悬空镜像、悬空构建缓存
-a, --all 清理所有未使用的镜像 基础清理 + 所有未被容器引用的镜像
--volumes 清理卷 基础清理 + 所有未被容器引用的卷
-f, --force 强制执行 不提示确认,直接删除
--filter 条件过滤 根据特定条件筛选要删除的对象

组合使用示例:

# 1. 标准清理(最安全)
docker system prune

# 2. 清理所有未使用镜像(不清理卷)
docker system prune -a

# 3. 清理所有未使用镜像和卷(危险)
docker system prune -a --volumes

# 4. 自动确认,不询问
docker system prune -f

# 5. 清理24小时前的资源
docker system prune --filter "until=24h"

# 6. 清理带有特定标签的资源
docker system prune --filter "label=deprecated=true"

过滤条件高级用法:

# 清理超过指定时间的对象
docker system prune --filter "until=2026-01-01T00:00:00Z"

# 组合多个条件(逻辑与)
docker system prune -a --filter "until=24h" --filter "label!=keep"

# 排除某个标签的资源
docker system prune --filter "label!=important"

安全建议:

  • 生产环境:只用 docker system prune(不加 -a--volumes
  • 开发环境:可以用 docker system prune -a,节省空间
  • 避免使用 --volumes 除非确定数据不重要

3. docker system info - 系统信息

显示 Docker 引擎和主机的详细信息。

基本用法:

docker system info
# 或使用旧命令别名
docker info

输出内容包括:

  • 服务器版本:Docker Engine 版本号
  • 操作系统:运行 Docker 的主机系统
  • 内核版本:Linux 内核版本
  • CPU/内存:主机硬件资源
  • 存储驱动:overlay2, aufs 等
  • 日志驱动:json-file, journald 等
  • 安全选项:seccomp, AppArmor, SELinux
  • 镜像加速器:Registry Mirrors 配置
  • 容器运行时:runc, containerd 版本

实用示例:

# 查看 Docker 根目录位置
docker info | grep "Docker Root Dir"

# 查看存储驱动和空间
docker info | grep -A 5 "Storage Driver"

# 查看当前运行的容器数量
docker info | grep "Containers:"

# 输出为JSON格式(便于脚本处理)
docker info --format "{
   {json .}}"
docker info -f "{
   {.ServerVersion}}"

4. docker system events - 事件监控

实时监控 Docker 守护进程产生的事件。

基本用法:

docker system events

事件类型:

  • 容器事件:create, start, stop, kill, die, pause, unpause, delete
  • 镜像事件:pull, push, tag, untag, delete, save, load
  • 卷事件:create, mount, unmount, destroy
  • 网络事件:create, connect, disconnect, destroy
  • 守护进程事件:reload

实用示例:

# 只监控容器相关事件
docker system events --filter type=container

# 只监控镜像拉取事件
docker system events --filter event=pull

# 监控特定容器的所有事件
docker system events --filter container=my-container

# 监控带特定标签的事件
docker system events --filter label=com.example.env=production

# 只显示最近10条事件
docker system events --since 10m

# 按时间范围过滤
docker system events --since "2026-01-01T00:00:00Z" --until "2026-01-02T00:00:00Z"

# 格式化输出(只显示时间和事件)
docker system events --format "{
   {.Time}} {
   {.Type}} {
   {.Action}}"

5. docker system dial-stdio - 高级连接管理

这是一个相对底层的命令,用于与 Docker 守护进程建立双向流式连接。主要用于调试和开发场景。

使用场景

  • Docker CLI 插件的开发
  • 远程调试 Docker 守护进程
  • 高级网络诊断

示例

# 通常不直接使用,而是在插件中通过 API 调用
docker system dial-stdio

实战组合技巧

技巧1:清理前的预览

# 先查看占用情况
docker system df

# 预览会被删除的内容(不实际删除)
docker system prune -a --volumes --dry-run  # 注意:--dry-run 不是所有版本都支持
# 替代方案:手动检查
docker container ls -a | grep Exited  # 查看停止的容器
docker image ls -a  # 查看所有镜像
docker volume ls -f dangling=true  # 查看未使用的卷

技巧2:定期自动清理(Cron任务)

# 编辑 crontab
crontab -e

# 每天凌晨2点清理(安全模式)
0 2 * * * /usr/bin/docker system prune -f

# 每周日凌晨3点深度清理(保留最近7天)
0 3 * * 0 /usr/bin/docker system prune -a --filter "until=168h" -f

技巧3:监控磁盘变化

# 实时监控 Docker 磁盘占用
watch -n 5 'docker system df'

# 记录空间变化到日志
echo "$(date): $(docker system df | grep Images)" >> disk-usage.log

技巧4:一键清理脚本

#!/bin/bash
# docker-cleanup.sh - 安全的清理脚本

echo "当前磁盘占用:"
docker system df

echo ""
echo "清理停止的容器、悬空镜像和未使用的网络..."
docker system prune -f

echo ""
echo "清理旧的构建缓存(7天以上)..."
docker builder prune -f --filter "until=168h"

echo ""
echo "清理未使用的卷(需要确认)..."
docker volume prune

echo ""
echo "清理完成!"
docker system df

最佳实践总结

环境 推荐命令 频率
生产环境 docker system prune 每周1次
开发环境 docker system prune -a 每天1次
CI/CD 环境 docker system prune -a --volumes -f 每次构建前
个人学习 docker system prune -a --volumes 磁盘满时
Docker Desktop (Mac/Windows) docker system prune -a 月度维护

注意

  • 🔴 --volumes = 数据可能永久丢失
  • 🟡 -a = 镜像需要重新下载
  • 🟢 无参数 = 最安全,日常使用
目录
相关文章
|
2月前
|
人工智能 IDE 开发工具
编程范式的下一次跃迁:深度解析全新的 GitHub Copilot 独立桌面应用
2026年5月,GitHub发布Copilot独立桌面App技术预览版,标志着AI编程从IDE插件迈向原生智能体开发环境。它以Issue/PR为起点,提供隔离会话、内置终端与浏览器、自动合并PR等能力,实现“输入问题→输出通过CI的PR”闭环,推动开发者角色向高阶审查者演进。
1409 2
|
2月前
|
NoSQL Dubbo 应用服务中间件
一条IM消息的分布式之旅:从发送到已读
一条消息从点击“发送”到对方收到,背后是分布式系统的精密协作:经WebSocket接入→Center事务落库→Redis查在线状态→定向投递→ACK确认→已读回执,全程保障可靠性与实时性。(238字)
648 116
|
2月前
|
弹性计算 API 数据库
2026阿里云服务器新购与续费优惠政策解析:新老用户省钱攻略与上云和用云福利参考
2026年阿里云服务器新购与续费优惠政策解析:新购方面,阿里云提供丰富的免费试用机会(个人最高300元/月、企业最高660元/月),以及轻量应用服务器低至0.1元/天的限时抢购活动,覆盖2核2G至4核16G多档配置。续费方面,推出"99计划"等长效特惠,经济型e实例99元/年、u1实例199元/年,均实行新购续费同价,活动延续至2027年3月。此外,企业用户还可享受迁云补贴、出海补贴(最高10万元)、阿里云百炼按量返券等专属权益。
|
1月前
|
人工智能 自然语言处理 测试技术
告别手动画图:用自然语言生成可直接发布的 SVG+PNG 技术图
`fireworks-tech-graph`它把技术图这件事,从一次性手工劳动,变成了一种可以沉淀、复用、批量生成的 Skill 能力。在 AI/Agent 相关内容越来越多的背景下,这是一个很值得试一下的项目。
314 10
告别手动画图:用自然语言生成可直接发布的 SVG+PNG 技术图
|
2月前
|
人工智能 前端开发 JavaScript
告别排版烦恼,让公众号写作效率翻倍:TypeZen 完全指南
工欲善其事,必先利其器。TypeZen 的目标很简单:**让公众号创作者回归内容本身,把排版交给工具**。 如果你也是 Markdown 的重度用户,或者正在为公众号排版效率发愁,不妨试试 TypeZen。
349 1
告别排版烦恼,让公众号写作效率翻倍:TypeZen 完全指南
|
2月前
|
存储 人工智能 编解码
意图共鸣科技《AI记忆链商业化白皮书2.0》深度:三元悖论,从订阅制到双轨制的范式转移
本文揭示AI订阅制的“三元悖论”:用户不敢深用、企业难盈利、数据难自主。根源在于固定收费与浮动算力成本的根本错配。借鉴电信模式,提出“双轨制”——月租保记忆(存储)、按Token付费(算力),实现公平、透明、可迁移、可持续的新范式。
383 6
|
2月前
|
JavaScript 文件存储 数据安全/隐私保护
打造你的私人电子书王国:Talebook 项目全面介绍
Talebook 以其简洁的部署、优雅的界面和强大的功能,成为了这个领域不可多得的好项目。
633 127
|
1月前
|
机器学习/深度学习 数据采集 人工智能
田间杂草检测数据集分享(适用于YOLO系列深度学习分类检测任务)
本数据集含4000张真实农田图像(小麦/玉米/水稻田),YOLO格式标注杂草目标,覆盖多天气、光照与视角,适用于YOLO系列等目标检测模型训练,助力智能除草与精准农业研究。(239字)
377 16
|
1月前
|
API
阿里云微服务引擎 MSE 及 API 网关 2026 年 5 月产品动态
阿里云微服务引擎 MSE 及 API 网关 2026 年 5 月产品动态。
208 26
|
1月前
|
弹性计算 监控 Java
Maven 并行构建配置:-T 4C 提速 4 倍实战
本文深入讲解了 Maven 并行构建的核心原理和实战技巧,包含 -T 参数详解、模块并行化改造、性能监控与分析等企业级最佳实践。通过真实案例展示了如何将多模块项目的构建时间从 45 分钟缩短到 11 分钟(提升 4.1 倍),提供完整的性能测试脚本和优化检查清单。掌握这些技能,你将能够充分利用多核 CPU 加速 Maven 构建。适合 Java 开发者、架构师、DevOps 工程师阅读。