Docker Windows构建失败并显示错误:"系统无法找到指定的路径"

时间:2017-10-03 07:21:43

标签: windows docker docker-windows

我尝试在Docker Windows上创建目录连接以创建8.3。但它失败了,下面的错误信息。

D:\data\docker\sample>docker build -t sample .
Sending build context to Docker daemon  1.272GB
Step 1/4 : FROM microsoft/windowsservercore
 ---> 2cddde20d95d
Step 2/4 : RUN fsutil.exe behavior set disable8dot3 0
 ---> Running in ec6e7cc09ec6
The registry state is now: 0 (Enable 8dot3 name creation on all volumes).
 ---> 53805bc21858
Removing intermediate container ec6e7cc09ec6
Step 3/4 : RUN mklink /J "C:\PROGRA~1" "C:\Program Files"
 ---> Running in 2116f2070e6a
Junction created for C:\PROGRA~1 <<===>> C:\Program Files
re-exec error: exit status 1: output: time="2017-10-03T16:15:54+09:00" level=error msg="hcsshim::ImportLayer failed in Win32: The system cannot find the path specified. (0x3) layerId=\\?\C:\ProgramData\Docker\windowsfilter\5234d5f7cd7c2669db1818d9227a4be2822eeb72fc30071a495de78cd578b9f3 flavour=1 folder=C:\WINDOWS\TEMP\hcs088640839"
hcsshim::ImportLayer failed in Win32: The system cannot find the path specified. (0x3) layerId=\\?\C:\ProgramData\Docker\windowsfilter\5234d5f7cd7c2669db1818d9227a4be2822eeb72fc30071a495de78cd578b9f3 flavour=1 folder=C:\WINDOWS\TEMP\hcs088640839

Dockerfile如下:

FROM microsoft/windowsservercore
RUN fsutil.exe behavior set disable8dot3 0
RUN mklink /J "C:\PROGRA~1" "C:\Program Files"
CMD [ "powershell" ]

如何在Docker Windows上创建目录juction?

5 个答案:

答案 0 :(得分:17)

我猜测你的问题实际上与创建目录连接无关(请注意你的构建确实完成了这一步),但是与超出docker容器的基本大小有关(我看到你了)从windowsservercore拉出,大约10GB,而web browsing告诉我默认的容器基本大小是10GB)。

尝试通过添加此json:

将docker守护程序配置中的大小更改为20GB
"storage-opts": [
  "size=20G"
]

daemon config

我遇到了相同的错误消息,尝试了各种故障排除方法,并使用该守护程序设置解决了这个问题。

答案 1 :(得分:1)

对于Docker Enterprise,可以在此处配置C:\ ProgramData \ docker \ config \ daemon.json

"storage-opts":["size=20G"]

如果该文件不存在,请创建

Link here

答案 2 :(得分:0)

我无法通过其他方法解决此问题;对我有用的是删除并重新拉动基础图像。因此,显然有可能从损坏的图像中获取此错误。

答案 3 :(得分:0)

检查项目是否正在运行!如果正在运行,请完成它。然后再次检查命令

答案 4 :(得分:0)

泊坞窗似乎不支持Windows的结点和硬链接。

在创建一个内部包含Cygwin的容器时,我遇到了类似的问题。 Cygwing经常使用硬链接。这一切都一直持续到Docker尝试提交映像,并且失败并显示“ hcsshim :: ImportLayer-找不到路径”错误。当我摆脱了容器中的硬链接后,便能够毫无问题地提交映像。