【技术】Docker 释放空间

Docker 在使用过程中会产生大量临时文件、停止的容器、悬空镜像和构建缓存,及时清理可以释放宝贵的磁盘空间。以下是几种常用的清理方法,按从安全通用彻底激进的顺序排列。


1. 一键清理(最常用)

使用 docker system prune 命令,它会清理所有未使用的资源(停止的容器、悬空镜像、未使用的网络、构建缓存)。

bash 复制代码
# 标准清理(只删除悬空镜像,不删除未使用的卷)
docker system prune

# 彻底清理(添加 -a 删除所有未使用的镜像,添加 --volumes 删除未使用的卷)
docker system prune -a --volumes

注意 :添加 --volumes 会删除未被任何容器使用的卷,操作前请确认数据是否需要保留


2. 分类清理(针对性操作)

如果只想清理特定类型的资源,可以使用以下命令。

清理容器
bash 复制代码
# 删除所有已停止的容器
docker container prune

# 删除所有已停止的容器(并强制)
docker container prune -f

# 删除所有容器(包括运行中的,需加 -f 强制)
docker rm -f $(docker ps -aq)
清理镜像
bash 复制代码
# 删除悬空镜像(无标签、无容器的中间层)
docker image prune

# 删除所有未使用的镜像(包括未被容器使用的)
docker image prune -a

# 删除所有镜像(谨慎使用)
docker rmi -f $(docker images -q)
清理卷

卷是用于持久化数据的,清理需格外谨慎。

bash 复制代码
# 删除所有未使用的卷
docker volume prune

# 查看卷占用空间
docker system df -v
清理构建缓存
bash 复制代码
# 删除所有构建缓存
docker builder prune

# 彻底清理构建缓存
docker builder prune -a

3. 查看磁盘占用情况

在清理前后,可以用以下命令查看 Docker 的资源占用情况:

bash 复制代码
# 显示总览(容器、镜像、卷、构建缓存各自占用)
docker system df

# 显示更详细的列表
docker system df -v

4. 自动化清理(推荐定期执行)

可以设置 cron 任务 (Linux)或 计划任务(Windows/macOS)定期自动清理。

例如在 Linux 中,编辑 crontab:

bash 复制代码
crontab -e

添加一行,每周日凌晨 3 点执行清理:

bash 复制代码
0 3 * * 0 docker system prune -f

5. 特殊情况:清理所有停止容器和镜像(慎用)

如果你确信不需要任何已停止的容器和未使用的镜像,可以执行以下组合命令:

bash 复制代码
# 停止所有运行中的容器(可选)
docker stop $(docker ps -q)

# 删除所有容器
docker rm -f $(docker ps -aq)

# 删除所有镜像
docker rmi -f $(docker images -q)

# 删除所有卷(慎用)
docker volume rm $(docker volume ls -q)

# 删除所有网络(除默认外)
docker network prune

总结建议

场景 推荐命令
日常清理 docker system prune
释放较多空间 docker system prune -a
连卷也清理(数据不保留) docker system prune -a --volumes
查看占用 docker system df -v
定期自动清理 crontab + docker system prune -f

提醒 :清理卷 (--volumes) 会删除容器未使用的数据卷,如果容器中保存了数据库或重要文件,务必确认这些卷是否还在使用中,以免数据丢失。

相关推荐
杨浦老苏37 分钟前
大模型安全接入网关LinkAI
人工智能·docker·ai·群晖·隐私保护
档案宝档案管理38 分钟前
权限分级管控,全程可追溯,筑牢会计档案安全防线
运维·网络·人工智能
倔强的石头1062 小时前
【Linux指南】基础IO系列(八):实战衔接 —— 给微型 Shell 添加完整重定向功能
linux·运维·服务器
观北海3 小时前
AiScan-N:AI全自动化渗透测试工具的深度技术解析
运维·自动化
Ujimatsu3 小时前
虚拟机安装Ubuntu 26.04.x及其常用软件(2026.4)
linux·运维·ubuntu
Dillon Dong4 小时前
【系列主题】Next.js 16 + Turbopack 的暗礁:深入剖析 Tailwind v4 的 CSS 模块解析陷阱
javascript·css·容器·turbopack
jc06204 小时前
6.1云原生之Docker
c++·docker·云原生
Agent产品评测局5 小时前
制造业生产调度自动化落地,完整步骤与避坑指南:2026企业级智能体选型与实战全景
运维·人工智能·ai·chatgpt·自动化
狂奔的sherry6 小时前
一次由 mount 引发的 Linux 文件系统“错觉”
linux·运维·服务器
志栋智能6 小时前
超自动化巡检:让合规与审计变得轻松简单
运维·网络·人工智能·自动化