You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何清理Docker系统且不删除指定镜像?

清理Docker并保留指定镜像的简便方法

可以通过以下几种单命令方式实现,无需额外启动容器:

1. 使用--filter参数精准过滤要保留的镜像

docker system prune -a支持通过--filter参数设置保留规则,常见用法:

  • 保留特定名称/标签的镜像:
    比如要保留nginx:latest和mysql:8.0,可以组合过滤条件:

    docker system prune -a --filter "name=nginx:latest" --filter "name=mysql:8.0" --filter "until=0h"
    

    注:until=0h表示不删除任何时间内创建的匹配镜像,确保指定镜像被完整保留。

  • 保留最近N天创建的镜像:
    如果只想保留最近30天内使用过的镜像,同时清理更早的无用资源:

    docker system prune -a --filter "until=720h"
    

    这里的720h对应30天,可根据自身需求调整小时数。

2. 给需保留的镜像打标签,按标签过滤清理

先给要保留的镜像添加自定义标签(比如keep):

docker tag nginx:latest nginx:keep

之后执行清理命令,排除带有keep标签的镜像:

docker system prune -a --filter "label!=keep"

如果后续不需要保留该镜像了,直接删除标签即可,不会影响原镜像的正常使用。

3. 排除指定镜像ID进行清理

如果知道要保留的镜像ID,可以直接在命令中排除:

docker system prune -a --filter "id!=abc123" --filter "id!=def456"

如果需要批量处理,也可以把要保留的ID存成变量,写成单行命令:

KEEP_IDS=$(docker images -q nginx:latest mysql:8.0) && docker system prune -a --filter "id!=${KEEP_IDS//$'\n'/\" --filter \"id!=}"

这个命令会自动获取指定镜像的ID,然后排除它们完成清理操作。

内容的提问来源于stack exchange,提问作者Nikola Novak

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 17:15:17