在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>

当前回答

对于win10,我有同样的问题:

error during connect: Post http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.39/images/load?quiet=0: 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.

docker服务似乎正常工作。重启也无济于事。 以管理员身份从安装目录运行二进制文件会有所帮助。

在我的例子中:

run as administrator -> C:\Program Files\Docker\Docker\Docker for Windows.exe

其他回答

错误代码:

连接过程中出现错误:Get http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.29/version:开放 / /。/pipe/docker_engine:系统找不到指定的文件。在 Windows上的默认守护进程配置,必须运行docker客户端 抬高连接。此错误也可能表明docker Daemon未运行。

解决方案:

1)对于Windows 7命令窗口(cmd.exe),以管理员身份打开cmd.exe,执行如下命令:

docker-machine env --shell cmd default

您将收到以下输出:

SET DOCKER_TLS_VERIFY=1
SET DOCKER_HOST=tcp://192.168.99.100:2376
SET DOCKER_CERT_PATH=C:\Users\USER_NAME\.docker\machine\machines\default
SET DOCKER_MACHINE_NAME=default
SET COMPOSE_CONVERT_WINDOWS_PATHS=true
REM Run this command to configure your shell:
REM @FOR /f "tokens=*" %i IN ('docker-machine env --shell cmd default') DO @%i

复制下面的命令并在cmd上执行:

@FOR /f "tokens=*" %i IN ('docker-machine env --shell cmd default') DO @%i

然后执行以下命令进行控制:

docker version

2)对于Windows 7 Powershell,以管理员身份运行Powershell .exe,执行以下命令:

docker-machine env --shell=powershell | Invoke-Expression

然后执行以下命令进行控制:

docker version

3)如果重新打开cmd或powershell,应再次重复相关步骤。

在我的例子中,WSL2 Linux-Kernel丢失了,下载,执行并重新启动:

https://learn.microsoft.com/de-de/windows/wsl/wsl2-kernel

解决了问题。

这在win10-home https://github.com/docker/for-win/issues/11967上为我工作

关闭服务docker 现在在窗口命令终端中执行该命令 \AppData\漫游\Docker 启动服务docker 现在点击Docker Desktop

“Docker桌面”现在将运行…做……:)

在安装了带有WSL 2后端运行的Docker Desktop 4.7.1后,我在终端上也遇到了同样的问题。托盘鲸的图标也没有显示。

在我的情况下,问题是我之前已经安装了一个WSL发行版(Ubuntu),它已经是默认的。带有WSL 2后端的Docker Desktop安装了自己的发行版Docker - Desktop。并且它必须是默认的(至少在没有在其他地方配置的情况下)。

所以我不得不在PowerShell中运行这个命令:wsl——setdefault docker-desktop并重新启动docker服务。在这里找到了解决方案。

原因:其中一个原因可能是由于命令关闭了vmmem

wsl --shutdown

解决方案:通过右键单击重新启动Docker将解决问题。