Docker构建始终失败,并出现错误hcsshim :: PrepareLayer-Win32错误:函数失败。 (0x1)Windows容器

时间:2019-11-22 01:55:31

标签: docker-for-windows

复制步骤非常简单。

创建Dockerfile。

我的Dockerfile还有很多行,但是我已经对其进行了修剪,以便我们可以专注于问题的根源。

表示,仅这两行(仅此而已)显示了问题。

FROM microsoft/iis
SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue'; $VerbosePreference = 'Continue'; "]

运行docker build .,您会得到hcsshim::PrepareLayer - failed failed in Win32: Función incorrecta. (0x1)

Windows 10 Pro 1909(但也发生在1903年)

Docker版本:2.1.0.5

引擎:19.03.5

机器:0.16.2

2 个答案:

答案 0 :(得分:8)

我找到了解决问题的方法。

阅读了所有https://github.com/docker/for-win/issues/3884错误之后,一些人找到了一个简单的解决方案:重命名C:\windows\system32\driver\cbfsconnect2017.sys,以便在下次启动时不会加载它。

禁用该驱动程序使我近一年来第一次在Windows容器中进行docker构建。

在我的情况下,Box Sync是使用该驱动程序的那个。

编辑:@GustavoTM发现pCloud提出了同样的问题。 EDIT2:@VonC已经注意到GitHub问题中的某些人已解决该问题,并删除了另一个文件C:\Windows\System32\drivers\cbfs6.sys。我还没有尝试过,但是如果有帮助,我会说。

好处是,我不需要卸载Box,而只需重命名该文件即可。

答案 1 :(得分:2)

这仍然是issue (still open) with Win10。 对于某些用户来说,解决方法似乎是使用文件系统过滤器(如Dropbox,Box等)卸载云存储提供程序。

卸载云存储提供程序或病毒扫描程序;如果您确定哪个不起作用,请共享https://github.com/docker/for-win/issues/3884