在docker-compose up --build期间,Docker Enterprise守护程序死于“ Windows命名管道错误”

时间:2018-09-11 16:40:40

标签: windows docker docker-compose windows-server-2016 docker-ee

我正在Windows Server 2016(版本1607)上运行Docker Enterprise。当我运行docker-compose up -d --build时,Docker开始构建我的项目,但在完成第一组下载后出现以下错误,但失败:

Step 1/4 : FROM microsoft/dotnet:2.1-sdk-nanoserver-1803
2.1-sdk-nanoserver-1803: Pulling from microsoft/dotnet
e46172273a4e: Download complete
1f7d468f830c: Download complete
49e2df75adc8: Download complete
5bf149b5ccf5: Download complete
8b3ace20105f: Download complete
c17187292dad: Download complete
501949accc8a: Download complete
f87c5e7b5f65: Download complete
ERROR: Windows named pipe error: The pipe has been ended. (code: 109)

这种情况发生后,由于守护程序已停止运行,所有其他docker命令都会失败。我可以通过在“服务”窗口中查看来验证这一点:

enter image description here

在执行更多docker命令之前,我必须手动重新启动Docker服务。

为什么会这样,我该如何解决?

这是docker version的输出:

PS C:\> docker version
Client:
 Version:      17.10.0-ee-preview-3
 API version:  1.33
 Go version:   go1.8.4
 Git commit:   1649af8
 Built:        Fri Oct  6 17:52:28 2017
 OS/Arch:      windows/amd64

Server:
 Version:      17.10.0-ee-preview-3
 API version:  1.34 (minimum version 1.24)
 Go version:   go1.8.4
 Git commit:   b8571fd
 Built:        Fri Oct  6 18:01:48 2017
 OS/Arch:      windows/amd64
 Experimental: true

2 个答案:

答案 0 :(得分:0)

我进行了两项更改,现在不再出现此错误:

  1. 我意识到我正在使用实验性的Docker版本(17.10.0-ee-preview-3),所以我回滚到17.06.2-ee-16
  2. 我了解到主机使用的Windows Server版本决定了可以在容器中使用的Windows Server版本。参见此处:https://docs.microsoft.com/en-us/virtualization/windowscontainers/deploy-containers/version-compatibility。现在,我的容器使用的Windows Server版本与主机的版本匹配。

我认为上面的第一点是关键。

答案 1 :(得分:0)

重启Windows后出现相同的错误。我等待了几分钟,并收到消息“ docker-descktop正在运行”。现在运行命令,一切都可以正常工作。