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

Azure DevOps下docker image prune无法正常回收镜像空间问题

问题分析与解决步骤

你遇到的情况是:Azure Pipeline构建的Docker镜像执行sudo docker image prune -a后,虽提示镜像已取消标签并删除,但未回收任何空间;而sudo docker system prune -a可正常释放空间,手动创建的镜像删除无异常。核心原因大概率是Azure Pipeline创建的镜像关联了未被清理的附属资源,或镜像层被其他共享资源占用。

排查与解决步骤

  • 检查并清理关联容器
    Azure Pipeline构建镜像过程中,可能会遗留停止状态的容器,这些容器会引用镜像的底层分层,导致docker image prune -a无法释放空间。执行以下命令清理所有停止的容器后,再尝试删除镜像:

    sudo docker rm $(sudo docker ps -aq)
    sudo docker image prune -a
    
  • 查看空间占用明细
    用docker system df -v命令查看镜像、容器、卷、构建缓存的空间占用详情,确认被删除镜像的分层是否被其他镜像或缓存引用。如果是共享分层被其他镜像占用,删除单个镜像自然不会释放空间。

  • 清理Docker构建缓存
    Azure Pipeline的Docker构建任务通常会启用构建缓存来加速构建,这些缓存可能未被image prune识别清理。执行以下命令清理构建缓存:

    # 若使用docker buildx
    sudo docker buildx prune -a
    # 通用缓存清理
    sudo docker builder prune -a
    
  • 验证镜像依赖关系
    针对被删除的镜像ID,执行sudo docker inspect <镜像ID>查看是否存在未被清理的依赖(如网络、卷、其他镜像引用),确认是否有隐藏的资源占用了镜像分层。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 04:34:57