docker无法在Windows上启动

时间:2016-11-07 06:46:26

标签: docker docker-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>

43 个答案:

答案 0 :(得分:29)

错误代码:

  连接期间出现

错误:获取   http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.29/version:开放   //./pipe/docker_engine:系统找不到指定的文件。在里面   Windows上的默认守护程序配置必须运行docker客户端   升高连接。此错误也可能表示该docker   守护程序没有运行。

解决方案:

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,则应重复相关步骤。

答案 1 :(得分:14)

错误与该部分有关:

在Windows的默认守护程序配置中,docker客户端必须 被提升到可以连接

您可以执行以下操作以切换Docker守护程序:

  1. 以管理员身份打开Powershell
  2. 运行以下命令:

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

答案 2 :(得分:13)

我有同样的问题。

启动docker守护程序解决了该问题。只需按Windows键搜索docker,然后单击“ Docker Dekstop”。守护程序应在一分钟内运行。 enter image description here

答案 3 :(得分:10)

如果您在左侧底部看到 docker desktop is STOPPED 或 Not Running 屏幕,请执行以下操作

  1. 使用 - 以管理员身份运行打开 PowerShell
  2. 如果 Docker 桌面处于打开状态,请关闭它
  3. 在 PowerShell 上执行以下命令 “&'C:\Program Files\Docker\Docker\DockerCli.exe' -SwitchDaemon”
  4. 打开 Docker Desktop,它将开始。

我遇到了这个问题。我尝试了上述步骤,它对我有用。谢谢!

答案 4 :(得分:7)

我很久以前就知道这个问题,但我找不到合适的解释和解决方案,所以希望我的答案很有用:)

假设您在Windows上安装Docker Toolbox,dockerdocker-machine命令都可用。通常情况下,人们会在使用其中任何一个时感到困惑。

docker命令仅在虚拟机中用于管理图像docker-machine命令在主机上用于管理Linux VM。

因此,请在Windows计算机上使用docker-machine命令。在VM中使用docker命令。要使用docker命令,例如docker ps,您可以打开 Docker快速入门终端 ,也可以在cmd / bash / PowerShell上运行这些命令:

docker-machine run default / 假设默认是您的Linux VM /

docker-machine ssh default

这将启动 boot2docker ,您将在命令行上看到docker图标。然后,您可以使用docker命令。

祝你好运:)

答案 5 :(得分:6)

您可以使用C:\ Program Files \ Docker \ Docker&gt; DockerCli.exe -SwitchDaemon并将Docker CLI指向Linux或Windows容器。这对我有用。

答案 6 :(得分:3)

对于 Docker版本19.03.12 Windows 10 ,我遇到了相同的错误。通过执行以下步骤解决了该问题。希望对别人有帮助。

  1. 转到 Windows开始->搜索框(在此处键入搜索内容)。那里 输入“ 服务”。在列出的项目中,点击服务应用。
  2. 现在在服务窗口中打开“ Docker桌面服务”搜索。右键单击它,然后启动该服务。其状态应更改为“ 正在运行”。
  3. 如果步骤2出现类似“ 依赖服务无法启动”的错误,则启动所有依赖服务。对我来说,我必须启动一个名为“ 服务器”的服务。
  4. 双击桌面中的“ Docker Desktop ”图标。现在,您会在系统任务栏中看到“ Docker Desktop正在运行”。
  5. 现在从命令提示符 PowerShell 运行命令“ docker version ”。它应该给出干净的输出。
  6. 如果步骤5中有任何问题,请以管理员身份运行命令提示符 PowerShell

以上解决方案假定已安装Docker,并且已在系统中启用 Hyper-V / 虚拟化

答案 7 :(得分:3)

对我来说,问题是未启用虚拟化。

在Windows 10上:转到任务管理器 - &gt;表现 - &gt; CPU和您应该看作“虚拟化:已启用”部分

如果您没有看到此选项,则表示尚未启用虚拟化。

另一个有趣的事情是你必须启用Hyper V。然而,当我使用parallels桌面时,我必须启用“嵌套虚拟化”才能使Hyper V“真正启用”。因此,如果您的Windows是虚拟机,请查看启用嵌套虚拟化的Parallels(或您正在使用的任何设置)的设置。

答案 8 :(得分:2)

原因:一个原因可能是因为我们通过命令关闭了vmmem

wsl --shutdown

解决方案:通过右键单击简单地重新启动 Docker 即可解决问题。

enter image description here

答案 9 :(得分:2)

对于在 Windows 10 机器上安装: 在安装搜索 Windows 功能之前,请在搜索中检查 Windows 管理程序平台和 Linux 子系统 windows features

WSL 1 或 2 的安装是强制性的,所以在 docker 提示您安装时安装它。

https://docs.microsoft.com/en-us/windows/wsl/install-win10

您需要从 Windows 商店安装 ubantu(版本 16、18 或 20):

ubantu version 20

安装后你可以运行命令 docker -versiondocker run hello-world 在 Linux 终端中。

此视频将有助于: https://www.youtube.com/watch?v=5RQbdMn04Oc&t=471s

答案 10 :(得分:2)

当我在 Windows 10 中开始使用 docker 时出现了同样的问题。我能够成功运行 docker --version,但在我尝试运行 docker pull docker/whalesay 时失败。
我尝试了这里的答案中建议的许多内容,但是当我按照以下步骤操作时,我的问题得到了解决:
1 .在windows中搜索docker,以管理员身份运行docker desktop。
2 .检查左下角的 docker 符号,如果 docker 正在运行,它应该是绿色的。
3 .如果它没有运行,请先安装“wsl_update”。
4 .打开 docker 桌面并使用您的 docker 凭据登录,当您登录时,您可以看到服务器重新启动并且左下角的标志变为绿色。
5.要检查docker是否正在运行以管理员身份打开PowerShell并运行docker run hello-world

答案 11 :(得分:2)

在powershell或Git bash中打开C盘并在命令下运行

n=2

答案 12 :(得分:2)

如果您在启用了Hyper-V的Windows 10 Pro上安装了docker,但仍然无法在Windows 10上运行Docker,那么错误表明您的docker守护程序未启动。按照以下步骤帮助我成功启动docker-
 1.在CMD上使用命令(管理模式) docker-machine restart default 然后你会得到msg,比如“打开C:\ User \ {User_name} \。docker \ machine \ machines \ default \ config.json:系统找不到指定的文件。” 转到将在Windows托盘(桌面右上角)上的泊坞窗图标。 然后右键单击泊坞窗图标 - &gt;设置 - &GT;重置 - &gt;重启Docker 这需要一些时间 然后你会看到消息“Docker正在运行绿色指示器”。
注意 - 如果您已经在系统上运行了Docker容器,请不要执行这些步骤。你可能会松开现有的容器。  enter image description here

答案 13 :(得分:2)

我最近有同样的问题。问题是安全软件(Trendmicro)阻止了docker创建Hyperv网络接口。您还应该检查防火墙,AV软件是否阻止安装或配置。

答案 14 :(得分:2)

如果没有其他答案对您有用,请尝试以下操作: 打开终端并运行:

wsl -l -v 

如果您注意到docker-desktop处于“安装”状态,请关闭Docker,以管理员身份运行powershell并注销docker-desktop:

PS C:\WINDOWS\system32> .\wslconfig.exe /u docker-desktop

重新启动docker,并希望它可以工作。如果没有,请先尝试卸载docker,然后注销docker-desktop,然后重新安装Docker。

来源:https://github.com/docker/for-win/issues/7295#issuecomment-645989416

答案 15 :(得分:1)

我也遇到错误提示

<template lang="pug">
    checkboxgroup(v-slot="{ allChecked }")
        checkbox(title="200 мм" summ="2" v-bind:checked="allChecked" style="badge")
        checkbox(title="300 мм" summ="4" v-bind:checked="allChecked" style="badge")
        checkbox(title="400 мм" summ="5" v-bind:checked="allChecked" style="badge")
        checkbox(title="500 мм" summ="6" v-bind:checked="allChecked" style="badge")
        checkbox(title="600 мм" summ="7" v-bind:checked="allChecked" style="badge")
        checkbox(title="900 мм" summ="8" v-bind:checked="allChecked" style="badge")
</template>

通过在管理员模式下运行“ powershell”来解决此问题。

答案 16 :(得分:1)

在我的情况下,WSL2 Linux内核丢失,下载,执行并重新启动:

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

解决了问题。

答案 17 :(得分:1)

我在Windows 10上安装后遇到了同样的错误。我尝试重新启动但是没有用,所以我做了以下(不建议如果你已经在docker工作了一段时间,这是一个全新安装):

1)找到系统托盘中的鲸鱼,然后右键单击

2)转到设置&gt;重置

3)重置为出厂默认值

然后我能够在Windows 10的网站上关注起始的docker教程,现在它就像魅力一样。

答案 18 :(得分:1)

我的一个朋友遇到了类似的问题,我们尝试了一下,并且奏效了。

Hyper-V尽管在“打开或关闭Windows功能”中被列出为处于活动状态,但实际上并未处于活动状态。在PowerShell下运行 systeminfo 并看到 列出了满足的要求(这不是您实际期望的Hyper-V输出)。

  1. 打开“打开或关闭Windows功能”
  2. 如果您不确定如何执行此操作,请参阅 https://www.howtogeek.com/250228/what-windows-10s-optional-features-do-and-how-to-[turn-them-on-or-off/][1]
  3. 关闭Hyper-V(取消选中复选框,确保所有子组件都标记为关闭)
  4. 单击“确定”-您的计算机将重新启动。
  5. 当计算机再次启动时,打开“打开或关闭Windows功能”,然后重新打开Hyper-V。您的计算机将再次重新启动。

现在您可以通过运行docker hello-world image进行测试。

答案 19 :(得分:1)

1.- 打开快捷方式的位置:

shorcut

2.- 右键单击​​和属性并将“-SwitchDaemon”添加到命运

enter image description here

3.- 授予管理员权限,高级选项:

enter image description here

4.- 重新启动窗口。

答案 20 :(得分:0)

将docker桌面安装到您的PC后(Windows一)。您可以找到此位置。实际上是什么?它通过您的CLI启动Docker Daemon

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

答案 21 :(得分:0)

您需要管理员特权才能运行服务

我有类似的问题。当我运行命令提示符(以管理员身份运行),然后键入“ docker version”时,问题消失了。

C:\ WINDOWS \ system32> docker版本

客户端:Docker Engine-社区 版本:19.03.8 API版本:1.40 Go版本:go1.12.17 Git提交:afacb8b 建成:2020年3月11日星期三01:23:10 操作系统/ Arch:Windows / amd64 实验性的:错误

服务器:Docker Engine-社区 发动机: 版本:19.03.8 API版本:1.40(最低版本1.12) Go版本:go1.12.17 Git提交:afacb8b 建成:2020年3月11日星期三01:29:16 操作系统/ Arch:linux / amd64 实验性:错误 装箱: 版本:v1.2.13 GitCommit:7ad184331fa3e55e52b890ea95e65ba581ae3429 runc: 版本:1.0.0-rc10 GitCommit:dc9208a3303feef5b3839f4323d9beb36df0a9dd docker-init: 版本:0.18.0 GitCommit:fec3683

答案 22 :(得分:0)

在WSL2上运行的Windows VM上安装了docker桌面后,遇到了类似的问题。

解决方案:

将Windows更新到最新版本,将VMTools更新到最新(11.2)版本,解决了该问题,现在docker正在不间断运行。

答案 23 :(得分:0)

我也遇到过同样的问题,可能是管理员的问题,因此请按照以下步骤在

上设置docker
  

windows10

  1. 登录docker后,从docker hub下载docker桌面。Docker Desktop Installer.exe文件将被下载。
  2. 使用Docker Desktop Installer.exe安装Run as administrator->在安装过程中标记Windows容器,否则它将仅安装linux容器。注销后将要求注销并登录,并在菜单中显示docker桌面。
  3. 安装后,转到->计算机管理->本地用户和组->组-> docker-user->在成员中添加用户 enter image description here
  4. 使用Run as administrator运行docker桌面 enter image description here
  5. 在“通知”选项卡中检查docker whale图标 enter image description here
  6. 运行命令> docker版本 enter image description here 成功使用docker,没有任何问题。

答案 24 :(得分:0)

对我来说,此问题通过在Docker Desktop中唱歌解决。

enter image description here

答案 25 :(得分:0)

我的解决方案非常简单。我注意到docker运行的是Linux容器而不是Windows容器。我所做的是通过右键单击系统托盘中的docker图标并选择切换到Windows容器来切换到Windows容器。

答案 26 :(得分:0)

我解决问题的最简单方法是终止 docker 桌面并重新启动它。如果您在左下角看到一个蓝色的 docker 图标,则表示 docker daemon 已成功启动,上面的错误应该已修复。

答案 27 :(得分:0)

随着docker的最新更新,我遇到了一个问题,即docker app在启动时被挂起。我通过使用taskmanager终止wsl.exe来解决此问题。

enter image description here

答案 28 :(得分:0)

通过运行docker桌面应用为我解决,签到通知。必要时进行设置。

$ net start com.docker.service

Docker for Windows Service服务正在启动。 Docker for Windows Service服务已成功启动。

$ docker version

$ net start com.docker.service

请求的服务已经启动。

答案 29 :(得分:0)

我已按照以下步骤解决了此问题 答:

启动服务“ Hyper-V虚拟机管理” 启动服务“ Hyper-V主机计算服务” 或

B。如果遇到任何错误,请执行以下步骤:-

1,打开“窗口安全性”

2,打开“应用程序和浏览器控件”

3,单击底部的“漏洞利用保护设置”

4,切换到“程序设置”标签

5,在列表中找到“ C:\ WINDOWS \ System32 \ vmcompute.exe”并将其展开

6,单击“编辑”

7,向下滚动到“代码流防护(CFG)”,然后取消选中“覆盖系统设置”

8,从powershell“ net start vmcompute”启动vmcompute

然后请重新启动系统

答案 30 :(得分:0)

对于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.

泊坞窗服务似乎可以正常工作。重新启动没有帮助。 以管理员身份从安装目录运行二进制文件。

就我而言:

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

答案 31 :(得分:0)

对我来说,错误是通过停止在Hyper-V中运行的虚拟Ubuntu实例解决的:

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.

一旦停止了Ubuntu实例,并重新启动了Docker Desktop,我通常的docker命令就可以正常运行了。

PS:我之所以想尝试此操作,是因为错误日志,该错误日志已被Docker Desktop进行了有益地编译,并愿意作为用户反馈发送给Docker Hub ...该日志似乎表明我的计算机缺少RAM ,而Docker因这个非常简单的原因而失败。杀死Ubuntu实例可以解决这个问题。

答案 32 :(得分:0)

以admin + powershell或以前用作admin的方式启动Windows的“ Docker桌面”。为我解决了!

答案 33 :(得分:0)

如果你在Windows中试试这个

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

进行测试尝试

docker run hello-world

答案 34 :(得分:0)

我在Windows上遇到了同样的错误。事实证明我错过了容器功能。

Install-WindowsFeature Containers

重启服务器

启动并运行时确保Docker服务正在运行

答案 35 :(得分:0)

我遇到了同样的问题。我通过启用hyper-v来解决这个问题。

  1. 在BIOS中启用虚拟化
  2. Install hyper-v

答案 36 :(得分:0)

对我来说,答案是关闭VPN服务。 在工作时,连接到VPN,我得到提到的错误。我关闭了VPN,然后docker在Windows 10上按预期工作。下面的命令(完成时)会将您带到交互式python提示符“&gt;&gt;&gt;”并预安装simplejsonrequests

docker run --rm -ti -v `pwd`:/tmp jfloff/alpine-python:2.7-slim -p simplejson -p requests

答案 37 :(得分:0)

我正在使用Windows 7和Docker Toolbox并将其修复为刚打开 Docker快速入门终端。

  

$ docker version客户端:版本:17.05.0-ce API版本:1.29   Go version:go1.7.5 Git commit:89658be Built:5月5日星期五   2017年5月15日11:11 OS / Arch:windows / amd64

     

服务器:版本:17.05.0-ce API版本:1.29(最低版本   1.12)Go版本:go1.7.5 Git commit:89658be Built:Thu May 4 21:43:09 OS / Arch:linux / amd64实验:false

答案 38 :(得分:0)

尝试从提升的命令提示符运行以下命令:

SET DOCKER_CERT_PATH=C:\Users\[YourName]\.docker\machine\machines\default
SET DOCKER_HOST=tcp://[yourDockerDeamonIp]:2376
SET DOCKER_MACHINE_NAME=default
SET DOCKER_TLS_VERIFY=1
SET DOCKER_TOOLBOX_INSTALL_PATH=C:\Program Files\Docker Toolbox

您可能还会发现即使没有设置这些env变量,从docker快速启动终端运行命令也没有问题。

答案 39 :(得分:-1)

第一次启动Powershell&#34;作为管理员&#34;这也可以防止你从docker version得到的错误。

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

答案 40 :(得分:-1)

这是最终解决方案..它对我有用... !!

1)在系统托盘中找到鲸鱼,然后右键单击

2)转到设置>重置

3)重置为出厂默认值

答案 41 :(得分:-1)

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

  1. 检查是否从taskmanager->性能启用了虚拟化
  2. 重新启动docker服务
  3. 安装最新的docker build并重新启动计算机。
  4. 确保docker服务正在运行。

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

答案 42 :(得分:-1)

当您收到此错误时,您可以启动Kitematic。它将显示一个用于重置VM的按钮,并将解决问题。