在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 daemon选择了linux而坏了 尝试使用此命令切换到Windows或Linux 使用管理员启动powershell并运行以下命令

'C:\Program Files\Docker\Docker\DockerCli.exe' -SwitchDaemon

或以管理员身份打开cmd提示符并擦下面的命令

"C:\Program Files\Docker\Docker\DockerCli.exe" -SwitchDaemon

其他回答

错误与这部分有关:

在Windows上的默认守护进程配置中,docker客户端必须 被提升运行连接

首先,验证Docker Desktop应用程序正在运行。如果没有,启动它:这将运行docker守护进程(只需等待几分钟)。 然后,如果错误仍然存在,您可以尝试切换Docker守护进程类型,如下所示:

Powershell:

以管理员身份打开Powershell 启动命令:& 'C:\Program Files\Docker\Docker\DockerCli.exe' -SwitchDaemon .exe

或者,使用cmd:

以管理员身份打开cmd 启动命令:“C:\Program Files\Docker\Docker\DockerCli.exe”-SwitchDaemon

您需要管理员权限来运行该服务

我也遇到过类似的问题。当我运行命令提示符(以管理员身份运行)并输入“docker版本”时,问题就消失了。

C:\WINDOWS\system32>docker version


Client: Docker Engine - Community
 Version:           19.03.8
 API version:       1.40
 Go version:        go1.12.17
 Git commit:        afacb8b
 Built:             Wed Mar 11 01:23:10 2020
 OS/Arch:           windows/amd64
 Experimental:      false

Server: Docker Engine - Community
 Engine:
  Version:          19.03.8
  API version:      1.40 (minimum version 1.12)
  Go version:       go1.12.17
  Git commit:       afacb8b
  Built:            Wed Mar 11 01:29:16 2020
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          v1.2.13
  GitCommit:        7ad184331fa3e55e52b890ea95e65ba581ae3429
 runc:
  Version:          1.0.0-rc10
  GitCommit:        dc9208a3303feef5b3839f4323d9beb36df0a9dd
 docker-init:
  Version:          0.18.0
  GitCommit:        fec3683

我正在使用窗口10,并执行以下步骤来解决此问题。

check虚拟化从任务管理器启用——>性能 重新启动docker服务 安装最新的docker版本并重新启动计算机。 确保docker服务正在运行。

以上步骤帮助我解决了这个问题。

我也曾面对过这样的错误

"Access is denied. 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."

在管理员模式下运行“powershell”解决了这个问题。

这个解决方案将帮助那些在一台windows机器上使用两个用户的用户

我在Docker 19.03.12版和Windows 10版上得到了同样的错误。通过以下步骤解决这个问题。希望它能帮助别人。

Go to Windows Start -> Search Box (Type here to search). There enter 'Services'. Among the listed items, click Services app. Now search 'Docker Desktop Service' in the Services window opened. Right click on it and Start the service. Its status should be changed to 'Running'. If step 2 gives error like 'the dependency service failed to start', then start all dependency services. For me, I had to start a service called 'Server'. Double click 'Docker Desktop' icon in desktop. Now you will see 'Docker Desktop is running' in system tray. Now run the command 'docker version' from Command Prompt or PowerShell. It should give clean output. If any issue in step 5, run Command Prompt or PowerShell as administrator.

上述解决方案假设Docker已经安装,并且在您的系统中启用了Hyper-V / Virtualization。