Windows 10上连接错误 - Docker守护程序未运行

4
我正在使用Windows 10电脑。最近我已下载了适用于Windows的Docker,一开始运行正常。但最近出现了一个问题,无法再启动,停留在“启动中”的状态。
我没有改变任何配置,想知道可能是什么原因导致这个问题。
我使用的是最新版本的Docker。

enter image description here

在我的电脑上,已启用 Hyper-V 但未启用容器。(因为我不使用 Windows 容器,所以我认为这是不必要的。)

enter image description here

在任务栏中,当我检查 Docker 图标时,它总是处于启动状态。

enter image description here

当我检查服务时,它看起来正在运行。

enter image description here

当我在PowerShell上尝试运行docker命令时,它找不到docker命令。

我并不急于设置docker,只是在玩耍。但是,突然出现了这个问题。我已经尝试解决这个问题有一段时间了。我搜索了类似的问题,并在寻找解决方案时多次卸载了docker。一个工具突然停止工作而找不到根本原因,这很奇怪和困扰。我怀疑公司安全策略的更改影响了我的计算机并导致了这个问题,但我找不到任何支持这一点的线索。

我的问题是我应该怎么做才能理解出了什么问题。是什么导致了这个问题,如何解决?

注意:当我重新启动计算机时会出现以下错误。

enter image description here

错误信息的内容:
连接期间出现错误:获取http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.30/containers/json时发生错误:打开//./pipe/docker_engine时发生系统找不到指定的文件。在Windows上的默认守护进程配置中,必须以提升权限运行docker客户端才能连接。此错误还可能表示docker守护程序未运行。在C:\gopath\src\github.com\docker\pinata\win\src\Docker.Backend\DockerDaemonChecker.cs的Docker.Backend.DockerDaemonChecker.Check(Func`1 isDaemonProcessStillRunning)函数中,在C:\gopath\src\github.com\docker\pinata\win\src\Docker.Core\pipe\NamedPipeServer.cs的Docker.Core.Pipe.NamedPipeServer类中,执行操作的命名管道服务器运行。
当我运行docker ps -a命令时,出现以下错误。

docker ps -a error during connect: Get http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.30/containers/json?all=1: open //./pipe/docker_engine : 系统找不到指定的文件。在Windows的默认守护程序配置中,docker客户端必须以管理员身份运行才能连接。此错误还可能表明docker守护进程未运行。


打开 Hyper-V,删除 Docker 虚拟机并重新安装 Windows 版本的 Docker。 - Tarun Lalwani
尽管我已经安装了Docker,但在Hyper-V管理器中没有列出虚拟机。“在此服务器上未找到虚拟机。”但是,我正在使用Linux容器,而不是Windows容器。也许这与此有关。 - clockworks
如果你有Linux容器,那么虚拟机需要存在,否则它将无法工作。这可能是问题所在,因为没有后备虚拟机,所以Docker无法工作。不确定为什么虚拟机根本没有被实例化。 - Tarun Lalwani
我在Windows 10中遇到了完全相同的问题。你找到了任何解决方案吗? - Aditya Khajuria
是的,问题已解决。检查是否安装了 Hyper-V。检查是否启用了 Hyper-V 和容器功能。检查 Docker 服务是否正在运行。确保您使用的是最新版本的Docker。另外,您可以在https://github.com/docker/for-win/issues上开一个票,如果上传日志,它们将有助于解决问题。在我的情况下,通过更新Docker到新版本来解决问题(实际上它已经是最新版本,但是一个新版本发布并修复了该问题。因此可能是一个Docker bug)。请耐心等待,继续尝试 :) 如果问题解决了,请告诉我。 - clockworks
2个回答

3
尝试更改docker.exe的安全权限以包括用户,并重新启动计算机。这应该可以解决问题。

enter image description here


这并没有帮助。此外,新版本的Docker不包括“Docker for Windows”可执行文件。 - Khasky

0

我能想到的一个可能原因是,给定的PowerShell实例不会“知道”在它首次启动时不存在的事物。您尝试过在安装Docker之后打开一个新的PowerShell窗口吗?

编辑:好吧,听起来这不是问题所在。常规cmd shell是否识别Docker命令?


是的,我甚至重启了电脑。而且,我已经重新安装了几次 Docker :) - clockworks
1
我在Windows 10中遇到了完全相同的问题。有什么解决办法吗? - Aditya Khajuria

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接