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

当前回答

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

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

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

其他回答

不知何故,我的docker桌面无法在安装和系统重启后的第一次尝试启动,所以我在任务管理器中杀死了docker进程,并再次打开docker桌面,它启动良好。能够从cmd提示符(docker run -d -p <project_name>)运行项目,能够在docker桌面中看到我的容器图像。

我从零开始安装Docker,遇到了这个问题。 通过安装WSL解决了这个问题。

wsl --install

根据@Manuel Larrota的回答,我还必须在windows任务管理器中结束所有与docker相关的进程,然后单击docker快捷图标启动docker。我最终在我的机器上得到了一个完全运行的docker实例。

确保您以“管理员”身份启动Powershell,这也将防止您从docker版本中得到的错误。

到2021年,这些提示可能会过时:

然后尝试启动docker服务:start-service docker 如果失败,删除docker。Pid文件,你可以在CD $env:programfiles\docker;rm docker.pid 最后,您应该将HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Virtualization\Containers\VSmbDisableOplocks更改为0或删除该值。

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

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

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