别让 Docker 吃掉你的硬盘:prune 清理全攻略
Docker Prune命令详解:清理无用资源 Docker在使用过程中会产生大量无用资源,如停止的容器、悬空镜像、未挂载卷等,占用磁盘空间。Docker提供了一系列prune命令进行清理: 清理镜像: docker image prune删除悬空镜像 docker image prune -a删除所有未使用镜像 支持-f跳过确认和--filter过滤条件 清理容器: docker contain
Docker Prune 命令详解:清理无用的镜像、容器、卷和网络
在日常使用 Docker 的过程中,会不断地产生一些不再使用的资源,比如停止的容器、悬空的镜像、未挂载的卷以及闲置的网络。
这些资源会持续占用磁盘空间,如果不定期清理,可能导致系统磁盘告急。为了解决这个问题,Docker 提供了一系列 prune 命令,帮助我们快速清理这些无用资源。
目录
一、清理镜像 (Prune Images)
1. 移除悬空镜像(dangling images)
悬空镜像是指 没有标签且未被容器引用的镜像。
执行以下命令可以删除这些镜像:
docker image prune
2. 移除所有未使用的镜像
docker image prune -a
该命令会删除所有 未被容器使用的镜像,不仅仅是悬空镜像。
⚠️ 注意:这可能会移除一些暂时不用,但未来可能还需要的镜像。
3. 跳过确认提示
默认情况下,执行 prune 会要求输入确认,若想跳过可使用:
docker image prune -f
4. 使用过滤器删除
删除超过 24 小时创建的镜像:
docker image prune -a --filter "until=24h"
更多过滤规则可通过 docker image prune --help 查看。
二、清理容器 (Prune Containers)
docker container prune 就是用来清理所有已停止的容器,无论它们是因为报错异常退出
docker container prune
其他参数(如 -f, --filter)与 docker image prune 类似。
三、清理卷 (Prune Volumes)
卷(Volume)通常用来保存数据库、配置等持久化数据,因此不会自动删除。
但如果有卷已经不再被任何容器使用,可以清理:
docker volume prune
⚠️ 卷里可能存放重要数据,删除前务必确认。
四、清理网络 (Prune Networks)
Docker 的网络不会占用大量磁盘空间,但会产生 iptables 规则、路由项等。
可以通过以下命令清理未被容器使用的网络:
docker network prune
五、一键清理所有 (Prune Everything)
如果想要进行一次“大扫除”,可以使用:
docker system prune
该命令会清理:
- 所有停止的容器
- 未被使用的网络
- 悬空镜像
- 构建缓存
更多推荐
所有评论(0)