复制步骤非常简单。
创建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
答案 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