随机
Enter 搜索 ↑↓ 切换 Esc 清空

docker-prune

命令

清理Docker未使用的资源

docker-prune

清理Docker未使用的资源

补充说明

docker prune 命令用于清理Docker系统中不再使用的资源,包括容器、镜像、网络和构建缓存等。这是清理磁盘空间和维护Docker环境的常用操作。

语法

docker prune [OPTIONS]

选项

-a, --all     # 删除所有未使用的镜像(不只是 dangling 镜像)
--filter      # 提供过滤条件(如 until=24h)
-f, --force   # 不显示确认提示

常用实例

清理所有未使用的资源

# 清理所有未使用的容器、网络、镜像和构建缓存
docker system prune

# 清理所有未使用的资源(包括 volumes)
docker system prune -a

# 清理24小时前创建的所有资源
docker system prune --filter "until=24h"

清理未使用的容器

# 删除已停止的容器
docker container prune

# 删除所有未使用的容器(不仅仅是停止的)
docker container prune -a

# 删除超过24小时的已停止容器
docker container prune --filter "until=24h"

清理未使用的镜像

# 删除 dangling 镜像(未标签且不被任何容器使用)
docker image prune

# 删除所有未使用的镜像
docker image prune -a

# 删除超过7天的未使用镜像
docker image prune -a --filter "until=168h"

清理未使用的网络

# 删除未被任何容器使用的网络
docker network prune

清理未使用的卷

# 删除未被任何容器使用的卷
docker volume prune

# 删除所有未使用的卷(包括命名卷)
docker volume prune -a

# 注意:-a 参数在 volume prune 中会删除所有未使用的卷

清理构建缓存

# 删除构建缓存
docker builder prune

# 删除所有构建缓存
docker builder prune -a

清理特定资源组合

# 只清理容器和镜像
docker container prune -a && docker image prune -a

# 清理网络和卷(小心使用)
docker network prune -a && docker volume prune -a

# 完整清理(包含 volumes)
docker system prune -a --volumes

查看清理前的空间使用

# 查看磁盘使用情况
docker system df

# 详细查看各类资源
docker system df -v

输出示例

$ docker system prune

WARNING! This will remove:
  - all stopped containers
  - all networks not used by at least one container
  - all dangling images
  - all build caches

Are you sure you want to continue? [y/N] y
Deleted Containers:
deleted1234567890abc
Total reclaimed space: 123.4MB

常见问题

Q: 清理后空间没有释放?

A: 检查是否有运行中的容器正在使用这些资源,或检查Docker根目录的挂载点。

Q: 如何自动定期清理?

A: 可以使用cron定时任务或systemd timer:

# /etc/cron.d/docker-prune
0 0 * * * root docker system prune -f

Q: 误删了重要数据?

A: docker volume prune 会删除未使用的卷,谨慎使用。重要数据应使用命名卷并定期备份。