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

当前回答

对我来说,在Windows 11上编辑%APPDATA%\Docker\settings。将json转换为以下值,然后重新启动Docker Desktop(我使用WSL2,而不是Hyper-V):

其他回答

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

在尝试了所有这些答案都失败后,我只是简单地升级到Windows 11

(在我的案例中:19043.1237 -> 22000.258)

如果您已经在启用Hyper-V的Windows 10 Pro上安装了docker,并且仍然不能在Windows 10上运行docker,那么,正如错误提示的那样,您的docker守护进程没有启动。

下面的步骤帮助我成功启动docker:

在cmd上使用命令(管理模式) docker-机器重启默认 然后你会收到这样一条消息: 用户打开C: \ \ \ {User_name} \ \ .docker \机\ \机器默认\ json: 系统无法找到指定的文件。 转到窗口托盘上的docker图标(桌面的右下角) 右键单击docker图标>设置>复位>重启docker 这要花点时间 然后你会看到下面的消息: Docker正在运行,指示灯为绿色

注意:如果您的系统上已经运行了Docker容器,那么请不要执行这些步骤。您可能会丢失现有的容器。

首先,我下载了windows 10的docker, OS Built 19042和版本20H2,如这个视频所示, 但我的docker还在起步阶段。我用提供的命令运行docker,但我得到了这样一个 连接时错误:Get http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.24/version: open //。/pipe/docker_engine:系统找不到文件

然后,这些解决方案为我启动docker工作:

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

OR

以管理员身份打开cmd & 运行命令:"C:\Program Files\Docker\Docker\DockerCli.exe

我在这里找到了这个。希望这对你也有帮助!

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

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

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