在Windows上执行docker version命令返回的结果如下:

C:\Projects> docker version
Client:
 Version:      1.13.0-dev
 API version:  1.25
 Go version:   go1.7.3
 Git commit:   d8d3314
 Built:        Tue Nov  1 03:05:34 2016
 OS/Arch:      windows/amd64
error during connect: Get http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.25/version: open //./pipe/docker_engine: The system cannot find the file
specified. In the default daemon configuration on Windows, the docker client must be run elevated to connect. This error may also indicate that the docker daemon is not running.

运行诊断将产生以下结果:

C:\Projects> wget https://github.com/Microsoft/Virtualization- 
Documentation/raw/master/windows-server-container-tools/Debug- 
ContainerHost/Debug-ContainerHost.ps1 -UseBasicParsin | iex

Checking for common problems
Describing Windows Version and Prerequisites
 [+] Is Windows 10 Anniversary Update or Windows Server 2016 608ms
 [+] Has KB3192366, KB3194496, or later installed if running Windows build 14393 141ms
 [+] Is not a build with blocking issues 29ms
Describing Docker is installed
 [-] A Docker service is installed - 'Docker' or 'com.Docker.Service'  134ms
   Expected: value to not be empty
   27:         $services | Should Not BeNullOrEmpty
   at <ScriptBlock>, <No file>: line 27
 [+] Service is running 127ms
 [+] Docker.exe is in path 2.14s
Describing User has permissions to use Docker daemon
 [+] docker.exe should not return access denied 42ms
Describing Windows container settings are correct
 [-] Do not have DisableVSmbOplock set to 1 53ms
   Expected: {0}
   But was:  {1}
   66:              $regvalue.VSmbDisableOplocks | Should Be 0
   at <ScriptBlock>, <No file>: line 66
 [+] Do not have zz values set 42ms
Describing The right container base images are installed
error during connect: Get http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.25/images/json: open //./pipe/docker_engine: The system cannot find the file specified. In the default daemon configuration on Windows, the docker client must be run elevated to connect. This error may also indicate that the docker daemon is not running.
 [-] At least one of 'microsoft/windowsservercore' or 'microsoft/nanoserver' should be installed 129ms
   ValidationMetadataException: The argument is null or empty. Provide an argument that is not null or empty, and then try the command again.
   ParameterBindingValidationException: Cannot validate argument on parameter 'Property'. The argument is null or empty. Provide an argument that is not null or empty, and then try the command again.
   at <ScriptBlock>, <No file>: line 90
Describing Container network is created
 [-] Error occurred in Describe block 1.08s
   RuntimeException: Cannot index into a null array.
   at <ScriptBlock>, <No file>: line 119
Showing output from: docker info

Showing output from: docker version
Client:
 Version:      1.13.0-dev
 API version:  1.25
 Go version:   go1.7.3
 Git commit:   d8d3314
 Built:        Tue Nov  1 03:05:34 2016
 OS/Arch:      windows/amd64

Showing output from: docker network ls

Warnings & errors from the last 24 hours
Logs saved to C:\Projects\logs_20161107-084122.csv
C:\Projects>

当前回答

我也有同样的问题。

启动docker守护进程解决了这个问题。只需搜索docker,按下windows键,然后点击“docker Dekstop”。Daemon应该马上就能运行了。

启动Docker Desktop后,确保左下角的Docker守护进程状态为绿色,并在鼠标悬停在其上时显示为RUNNING。

其他回答

对我来说,这个错误是通过停止在Hyper-V中运行的虚拟Ubuntu实例来解决的:

系统无法找到指定的文件。在Windows上的默认守护进程配置中,docker客户端必须以提升方式运行才能连接。此错误也可能表明docker守护进程没有运行。

一旦Ubuntu实例停止,Docker Desktop重新启动,我通常使用的Docker命令就可以正常运行了。

PS:我之所以有这个想法是因为Docker Desktop已经编译了一个错误日志,并提供了作为用户反馈发送到Docker Hub…日志似乎表明我的机器内存不足,Docker失败的原因很简单。杀死Ubuntu实例解决了这个问题。

在powershell或Git bash中打开C驱动器并运行以下命令

.\Program Files\Docker\Docker\DockerCli.exe -SwitchDaemon

尝试从提升的命令提示符运行以下命令:

SET DOCKER_CERT_PATH=C:\Users\[YourName]\.docker\machine\machines\default
SET DOCKER_HOST=tcp://[yourDockerDeamonIp]:2376
SET DOCKER_MACHINE_NAME=default
SET DOCKER_TLS_VERIFY=1
SET DOCKER_TOOLBOX_INSTALL_PATH=C:\Program Files\Docker Toolbox

您可能还会发现,即使不设置这些env变量,从docker快速启动终端运行命令也没有问题。

尝试用以下选项之一解决问题:

选择一个

Start-Service "Hyper-V Virtual Machine Management"
Start-Service "Hyper-V Host Compute Service"

or

选项B

打开“窗口安全” 打开“应用程序和浏览器控件” 点击底部的“利用保护设置” 切换到“程序设置”页签 在列表中找到“C:\WINDOWS\System32\vmcompute.exe”并展开它 点击“编辑” 向下滚动到“代码流保护(CFG)”,取消选中“覆盖系统设置” 从powershell“net Start vmcompute”启动vmcompute 然后重新启动系统

我的windows docker服务权限有问题,只是从“网络服务”切换到“本地系统”,它就开始工作了