首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Docker 磁盘吃满了?镜像与容器清理的安全清单与一键脚本

Docker 磁盘吃满了?镜像与容器清理的安全清单与一键脚本

作者头像
安全风信子
发布2025-11-18 15:54:49
发布2025-11-18 15:54:49
2300
举报
文章被收录于专栏:AI SPPECHAI SPPECH

一句话承诺:用对比表+流程图+一键脚本,快速释放磁盘,同时避免误删生产镜像。


现象与定位

指标

命令

说明

镜像占用

docker images

关注 SIZE 与虚悬dangling

容器占用

docker ps -a

停止但未删除的容器

卷占用

docker volume ls

长期积累最容易被忽视

构建缓存

docker builder prune

旧层缓存可能很大



一键清理脚本(Linux/macOS)

代码语言:javascript
复制
#!/usr/bin/env bash
set -euo pipefail

# 1) 显示当前占用
echo "== Docker System DF =="
docker system df || true

# 2) 清理虚悬镜像 (dangling)
echo "== Prune dangling images =="
docker image prune -f || true

# 3) 清理停止的容器
echo "== Remove stopped containers =="
docker rm $(docker ps -aq -f status=exited) 2>/dev/null || true

# 4) 清理无用卷(谨慎)
echo "== Prune unused volumes =="
docker volume prune -f || true

# 5) 清理构建缓存
echo "== Builder prune =="
docker builder prune -f || true

# 6) 再次显示占用
echo "== Docker System DF After =="
docker system df || true

Windows PowerShell 版本(WSL/本机通用)

代码语言:javascript
复制
# 显示占用
docker system df

# 清理虚悬镜像
docker image prune -f

# 清理停止容器
$stopped = docker ps -aq -f status=exited
if ($stopped) { docker rm $stopped }

# 清理无用卷(谨慎)
docker volume prune -f

# 清理构建缓存
docker builder prune -f

docker system df

安全清单与少量解释

  • 优先删除虚悬镜像(dangling),它们是构建过程残留层。
  • 卷(volume)可能承载数据,删除前确认不再使用。
  • 生产环境谨慎使用 prune,建议指定范围或在维护窗口操作。

常见坑与替代法

  • 坑:直接 docker system prune -a 可能删除重要镜像层。替代:分项清理并人工确认。
  • 坑:docker rm $(docker ps -aq) 误删运行中容器。替代:仅删除 status=exited。
  • 坑:清理卷导致数据丢失。替代:先 docker volume lsdocker volume inspect

下一篇预告

Nginx 反向代理只返回 404?最小可用配置与定位流程(时序+排错清单)。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-10-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 现象与定位
  • 一键清理脚本(Linux/macOS)
  • Windows PowerShell 版本(WSL/本机通用)
  • 安全清单与少量解释
  • 常见坑与替代法
  • 下一篇预告
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档