【问题标题】:Running parallel docker builds gives an error message -> Error removing intermediate container <id>: container <id>: driver "windowsfilter" failed运行并行 docker builds 会给出错误消息 -> 删除中间容器 <id> 时出错:容器 <id>:驱动程序“windowsfilter”失败
【发布时间】:2020-08-24 01:14:28
【问题描述】:

运行并行 docker 构建有时会出现错误消息:

Error removing intermediate container <id>: container <id>: driver
"windowsfilter" failed to remove root filesystem: hcsshim::GetComputeSystems:
Access is denied.

注意:&lt;id&gt; 是哈希值

例如 - 假设此错误消息出现在 docker 文件中第 3 步的末尾。然后,在 dockerfile 中的每个后续命令结束时,它会重新尝试删除在上一步中未能删除的中间容器,并从当前步骤中删除任何容器。有时它可能会成功。无论哪种方式 - 它都不会停止构建过程。但是,如果该进程无法在构建过程结束时删除容器,则会导致容器(非活动)和映像(悬空),从而浪费磁盘空间。

  1. 这种行为的原因是什么?
  2. 我知道docker container prune -fdocker image prune -f可以分别用来清理容器和镜像。但是在并行构建期间是否有任何其他解决方案可以解决此错误消息和非活动容器/悬空图像?
  3. docker 在运行并行构建方面是否有任何限制?

【问题讨论】:

  • 我认为,如果您在所有管道完成后运行单个 docker image prune,事情会更简单。
  • 即使在构建过程中不使用prune,我也面临这个问题。我现在更新了问题。
  • @variable 只是想知道,您是否使用buildkit 作为构建的后端?
  • 没有。我正在使用具有多个代理的构建机器。

标签: docker dockerfile docker-image docker-build


【解决方案1】:

在这里试试这个分支:https://github.com/moby/moby/issues/36218 似乎其中一个活动驱动程序可能会阻止重命名/删除文件,例如 Cisco AMP (ImmunetProtectDriver)。您可能想要检查并停用它或任何其他的。该分支的另一个建议是运行 Docker 时不带 -it 标志,除非你真的想要它们。

【讨论】:

    猜你喜欢
    • 2018-04-13
    • 2019-12-04
    • 2013-04-23
    • 1970-01-01
    • 2020-08-16
    • 1970-01-01
    • 2016-11-06
    • 1970-01-01
    • 2021-11-29
    相关资源
    最近更新 更多