Docker 一键清盘术, 释放磁盘空间不求人

  • 2025-06-29 08:34:14
  • 552

在日常开发和运维中,Docker 容器化让我们的工作更高效,但不知不觉中,磁盘空间却被镜像、容器和卷悄悄吃掉。今天教你一套干净利落的 Docker 磁盘清理攻略,让你轻松腾出宝贵空间!✨

一、快速查看磁盘占用情况

概览模式

docker system df

一条命令查看镜像、容器、卷、构建缓存的总占用。

详细模式

docker system df -v

列出每个镜像、容器、数据卷的具体体积和关联关系,帮你精准定位“大块头”。

宿主机视角

如果你想从操作系统层面再确认一遍,常用 df -h 和 du:

df -h du -sh /var/lib/docker

快速锁定 Docker 根目录的真实占用。

二、一键清理无用资源

⚠️ 提示:请先确认无误,再运行清理命令!

清空孤儿资源

docker system prune -a

自动删除所有停止的容器、无效镜像、未挂载网络,一招扫光“僵尸”资产。

专治废弃数据卷

docker volume prune

只删未被任何容器引用的持久卷,安全无风险。

如果想手动把关,可先:

docker volume ls docker volume inspect VOLUME_NAME docker volume rm VOLUME_NAME

深度清理构建缓存

docker builder prune -a

构建时留下的临时文件统统一锅端,释放更多空间。

三、盘点持久化存储(Volumes)

一览卷列表

docker volume ls

快速看到都有哪些卷。

查看某个卷详情

docker volume inspect VOLUME_NAME

包括驱动、宿主机挂载路径等信息。

宿主机实际目录

默认路径:

/var/lib/docker/volumes//_data

直接 du -sh,轻松查看每个卷的大小。

容器内占用

如果卷里存了应用数据,可进入容器一探究竟:

docker exec -it CONTAINER_NAME du -sh /挂载路径

四、进阶自动化 & 实战小技巧

定时自动清理:写个脚本配合 cron,每天/每周定时跑:

#!/bin/bash

docker system prune -af

docker volume prune -f

docker builder prune -af

保证磁盘常保“轻盈”。

专用存储分区:将 /var/lib/docker 挂载到独立分区或网络存储(NFS、Ceph、LVM),防止占满根分区导致服务器无法启动。

监控告警:结合 Prometheus、Grafana、Node Exporter,实时监控 Docker 文件夹使用率,超过阈值第一时间推送通知。

总结

通过以上四步:查看→清理→管理→自动化,你就能让 Docker 环境保持“苗条”状态,再也不用担心硬盘告急的问题。快动手试试,一键释放海量空间,让你的开发和 CI/CD 跑得更顺畅!✨