运行并行的docker构建会给出一个错误信息-> 错误删除中间容器<id>:容器<id>:驱动 "windowsfilter "失败。

问题描述 投票:1回答:1

运行并行docker构建有时会给出错误信息。

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

注意: <id> 是哈希值

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

  1. 出现这种行为的原因是什么?
  2. 我知道 docker container prune -fdocker image prune -f 可以分别用来清理容器和镜像。但是有没有其他的解决方案来解决这个错误信息和并行构建过程中容器dangled image不活动的问题?
  3. docker在运行并行构建方面有什么限制吗?
docker dockerfile docker-image docker-build
1个回答
0
投票

试试这个分支。https:/github.commobymobyissues36218似乎有一个活动的驱动程序可能会阻止重命名删除文件,比如思科AMP(ImmunetProtectDriver)。你可能想检查并停用它或任何其他的。在该分支上的另一个建议是运行Docker时不使用 -it 旗帜,除非你真的想要它们。

© www.soinside.com 2019 - 2024. All rights reserved.