泊坞窗无法在Windows上启动


103

docker versionWindows上执行命令将返回以下结果:

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>

8
我得出的结论是,该技术在Windows上还不成熟。在技​​术成熟之前,请使用Linux泊坞窗。
吉姆(Jim)2007年

使用此命令docker -machine create box github.com/docker/toolbox/issues/636
Nobody先生

确保您已遵循文档中的所有设置步骤:docs.docker.com/machine/get-started
fanny

Answers:


43

错误代码:

连接期间出错:获取 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,则应再次重复相关步骤。


13
请解释!powershell方法是最容易遵循的方法。但是,为什么会发生此问题,而单个衬管又能解决这个问题呢?
Jaywalker

2
如果步骤1和步骤2是互斥的,为什么将它们编号为1和2?
肖恩

10
Windows 10(企业版)呢?Docker machine "default" does not exist. Use "docker-machine ls" to list machines. Use "docker-machine create" to add a new one.
Chloe

39

您可以运行"C:\Program Files\Docker\Docker\DockerCli.exe" -SwitchDaemonDocker CLI并将其指向Linux或Windows容器。这对我有用。


3
这对我有用-Win10E-Docker版本18.03.0-ce,内部版本0520e24(使用linux vm-hyper v,启用了虚拟化-阻止我在virtualbox中运行vm-因此我可以同时使用docker或VM时间)
hB0

29

错误与该部分有关:

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

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

使用Powershell

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

或者,使用cmd

  1. 以管理员身份打开cmd
  2. RUn命令: "C:\Program Files\Docker\Docker\DockerCli.exe" -SwitchDaemon

2
简洁明了。为我工作。
mfonism

2
最好!谢谢你的评论!
Ravish Rawat

2
为我工作。谢谢
Elvin Aghammadzada 20/12/12

2
也为我工作,谢谢
KrzysztofPodmokły20年

14

我有同样的问题。

启动docker守护程序解决了该问题。只需按Windows键搜索docker,然后单击“ Docker Dekstop”。守护程序应在一分钟内运行。 在此处输入图片说明


13

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

假设您在Windows上安装了Docker Toolbox,则dockerdocker-machine命令都将可用。通常,人们在何时使用这两种方法时会感到困惑。

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

因此,请docker-machine在Windows计算机上使用命令。docker在虚拟机内部使用命令。要使用docker命令,例如,docker ps您可以打开Docker Quickstart Terminal或在您的cmd / bash / PowerShell上运行这些命令:

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

docker-machine ssh default

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

祝好运 :)


3
docker-machine: 'run' is not a docker-machine command. See 'docker-machine --help'.那与文档所说的不符。医生说您可以运行docker infodocker ps查看您的容器。docs.docker.com/get-started/#test-docker-version
Chloe

4

如果您在Windows中,请尝试此

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

用于测试尝试

docker run hello-world

4

如果您已在启用了Hyper-V的Windows 10 Pro上安装了docker,但仍无法在Windows 10上运行Docker,则由于错误提示,您的docker守护程序未启动。

以下步骤可帮助我成功启动docker:

  1. 在cmd上使用命令(管理员模式)

    docker-machine restart default
    
  2. 然后,您将收到类似以下的消息:

    open C:\User\\{User_name}\\.docker\machine\machines\default\config.json
    系统找不到指定的文件。

  3. 转到Windows托盘上的docker图标(桌面右下角)

  4. 右键单击Docker图标>设置>重置>重新启动Docker

    这需要一点时间

  5. 然后,您将看到以下消息:

    Docker运行时带有绿色指示灯

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

在此处输入图片说明


3
Docker machine "default" does not exist. Use "docker-machine ls" to list machines. Use "docker-machine create" to add a new one.
1919年

4

尝试使用以下任一选项解决问题:

选项A

Start-Service "Hyper-V Virtual Machine Management"
Start-Service "Hyper-V Host Compute Service"

要么

选项B

  1. 打开“窗口安全性”

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

  3. 点击底部的“利用保护设置”

  4. 切换到“程序设置”选项卡

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

  6. 点击“编辑”

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

  8. 从PowerShell“网络启动vmcompute”启动vmcompute

  9. 然后重新启动系统


4

Docker版本19.03.12Windows 10出现相同的错误。通过执行以下步骤解决了该问题。希望它能帮助别人。

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

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


启动服务器服务正常。
罗德兰

3

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

Windows10的

  1. 登录docker后从docker hub下载docker桌面。Docker Desktop Installer.exe文件将被下载。
  2. 安装Docker Desktop Installer.exe使用Run as administrator- >标记窗口容器安装其他期间也只会安装Linux容器。注销后将要求注销并登录,并在菜单中显示docker桌面。
  3. 安装后,转到->计算机管理->本地用户和组->组-> docker-user->在成员中添加用户 在此处输入图片说明
  4. 使用以下命令运行Docker桌面 Run as administrator 在此处输入图片说明
  5. 在通知标签中检查码头鲸图标 在此处输入图片说明
  6. 运行命令> docker版本 在此处输入图片说明 成功使用docker,没有任何问题。


2

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

在Windows 10上:转到任务管理器->性能-> CPU,您应该看到“虚拟化:已启用”部分

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

另一个需要注意的有趣事情是您必须启用HyperV。但是,当我使用并行桌面时,必须启用“嵌套虚拟化”才能真正启用HyperV。因此,如果您的Windows是VM,请检查启用了嵌套虚拟化的Parallels(或您使用的任何设备)的设置。


2

在Windows 10上进行安装后,我遇到了同样的错误。我尝试重新启动,但没有成功,所以我做了以下工作(不建议您在Docker中工作一段时间,这是全新安装):

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

2)前往[设定]> [重设]

3)重置为出厂默认设置

然后,我可以在Windows 10上按照网站上的入门docker教程进行操作,现在它可以像魅力一样工作。


系统托盘中没有鲸鱼。
1919年

我的机器上运行的是默认的虚拟机,该虚拟机正在运行docker worker,我重置了该虚拟机,然后解决了Windows中的docker错误
Freelancer

2

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


谢谢。这有帮助。
sv_vs

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


1

我将Windows 7与Docker Toolbox一起使用,并且要修复它,只需打开 Docker Quickstart Terminal。

$ docker version客户端:版本:17.05.0-ce API版本:1.29 Go版本:go1.7.5 Git提交:89658be内置:2017年5月5日星期五15:36:11 OS / Arch:Windows / amd64

服务器:版本:17.05.0-ce API版本:1.29(最低版本1.12)Go版本:go1.7.5 Git提交:89658be内置:2017年5月4日星期四21:43:09 OS / Arch:linux / amd64实验:false


1

对我来说,错误是通过停止在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的日志...该日志似乎表明我的机器内存不足,而Docker失败了由于这个非常简单的原因。杀死Ubuntu实例解决了这一问题。


1

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

这解决了我的问题。使用Windows容器运行Docker Windows CE。谢谢!
AA

'"C:\Program Files\Docker\Docker\Docker for Windows.exe"' is not recognized as an internal or external command, operable program or batch file.
1919年


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-关/] [1]
  3. 关闭Hyper-V(取消选中该复选框,确保所有子组件都标记为关闭)
  4. 点击“确定”-您的计算机将重新启动。
  5. 当计算机再次启动时,打开“打开或关闭Windows功能”,然后重新打开Hyper-V。您的计算机将再次重新启动。

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


0

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

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

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 quick start终端运行命令也没有问题。


我们可以解释一下这些命令的作用吗?将DOCKER_HOST设置为我知道的网络上不存在的IP地址时,我感到不舒服。
Bobort

抱歉,那是我的docker守护程序的本地IP。我已将其删除。
KidCode

0

我也遇到错误,说

"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”来解决此问题。


0

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

$ net start com.docker.service

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

$ docker version

$ net start com.docker.service

所请求的服务已经启动。


0

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

在此处输入图片说明



0

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

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

C:\ WINDOWS \ system32> docker版本

客户端:Docker Engine-社区版本:19.03.8 API版本:1.40 Go版本:go1.12.17 Git提交:afacb8b内置:Wed Mar 11 01:23:10 2020 OS / Arch:Windows / amd64实验:false

服务器:Docker Engine-社区引擎:版本:19.03.8 API版本:1.40(最低版本1.12)Go版本:go1.12.17 Git提交:afacb8b内置:2020年3月11日星期三01:29:16 OS / Arch:linux / amd64实验性:错误容器化:版本:v1.2.13 GitCommit:7ad184331fa3e55e52b890ea95e65ba581ae3429 runc:版本:1.0.0-rc10 GitCommit:dc9208a3303feef5b3839f4323d9beb36df0a9dd docker-init:版本:0.18.0 GitCommit:fec3683


0

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

解:

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


0

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


0

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

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

请为您的答案提供更多详细信息,否则可能会被标记为低质量。
伊桑·武

在将Docker桌面安装到您的PC后(Windows One)。您可以找到此位置。实际上是什么?它通过您的CLI启动Docker守护进程
Dinuwan Kalubowila,

我编辑了您的答案,以根据您的评论添加详细信息。您也可以自己编辑答案。那里有一篇文章写得很好,很简洁。
伊桑·武
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.