Docker 命令失败(在 Windows 中)

我正在尝试使用多克在一个窗口机器和被打击的每一个可能的问题,它似乎。我的最新作品是这样的: 我的机器正在运行,但我似乎无法使用 docker 命令与它交互。如果我运行一个非常标准的命令,比如:

docker ps

我得到一个如下的错误消息:

An error occurred trying to connect: Get http://%2F%2F.%2Fpipe%2Fdocker_engine/v
1.23/containers/json: open //./pipe/docker_engine: The system cannot find the file specified.

所以很明显有些路径是错误的。有人知道这是哪条路径,以及如何修复这条路径吗?

70150 次浏览

我在使用 docker-machine 时遇到了这个问题,重新启动后没有运行 docker-machine env命令。我不确定如何在 cmd.exe 中执行此操作,但是如果使用 powershell,请尝试发出以下命令:

docker-machine env --shell=powershell | Invoke-Expression

确保 Hyper-V 已经启动并运行:

  • 打开升高的命令提示符
  • 类型 bcdedit /set hypervisorlaunchtype auto
  • 重启
  • 运行“ Docker for Windows”

编辑 (2021)-这个答案是旧的 Docker 工具箱,而不是 Docker 桌面。

当运行 docker ps和接收时:

连接时发生错误: 获取 http://%2f%2f.%2fpipe%2fdocker_engine/v1.24/containers/json : open//./tube/docker _ engine: 系统无法找到指定的文件。

需要设置下列环境属性:

 set DOCKER_CERT_PATH=%USERPROFILE%\.docker\machine\machines\default
set DOCKER_HOST=tcp://192.168.99.100:2376
set DOCKER_MACHINE_NAME=default
set DOCKER_TLS_VERIFY=1

这是假设 %USERPROFILE%\.docker\machine\machines\default是默认路径,其中 cert.pemkey.pemca-key.pemca.pem docker 文件是; 虚拟机名称(由 docker-machine create创建)是 default和 Virtual Box DHCP Server 的下限(在 VirtualBox-> File-> Preferences-> Network-> Host-Only Networks-> hover Mouse on VirtualBox Host-Only Ethernet Adapter)是192.168.99.100,并且没有其他 VM 在 VirtualBox 中运行。

Win 7也有同样的问题。解决方案:

在 Docker Quickstart 窗口中,在 $提示符下运行以下行:

Your _ user@your _ machine MINGW64 ~

$eval $(“ C: Program Files Docker Toolbox Docker-machine. exe”env default)

然后,你就可以运行“ Docker run hello-world”了。

我在 Windows2016机器上遇到过这个问题。因为码头服务还没开始。在我的情况下,Docker 服务由于以下错误而失败

启动守护进程时出错: 找到 pid 文件,请确保 docker 未运行或删除 C: ProgramData docker.pid

删除 C: ProgramData docker.pid 文件起到了作用。

我看了以上所有的答案,没有一个是有效的。 然后我发现这个命令必须在像 bash 这样的 linux 命令行上运行。 所以试试吧:

在 Docker bash 终端 VM 中输入该命令,该终端 VM 与 Docker 工具箱相对应,而不是 windows cmd

如果您已经确认您的停靠点已经启动

我使用以下命令创建了一台新机器

docker-machine create --driver=virtualbox vbox-test

然后执行命令

docker-machine env --shell=powershell | Invoke-Expression

搞定了,搞定了。

正如在其他答案中所指出的,您需要设置一些环境变量。

最简单的方法是:

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

这将运行 docker-machine env --shell cmd并添加那些环境变量。

如果希望这些变量持久化,则在窗口中定义它们(教程)。

下面解决了。我从另一个论坛复制了答案

更新后我遇到了这个问题。重新安装 VB 后,我在属性网络连接中打开“ VirtualBoxNDIS6桥接网络驱动程序”。

在我的情况下,它的属性关闭了默认值。 `

我不得不在 Windows 上处理同样的问题。

为了解决这个问题:

  1. 创建一个 Docker 机器(只有在你没有的情况下)

    docker-machine create  default
    
  2. Get the ENV vars which the docker client needs in order to connect to the docker machine (server) [This you will need to do every time or set in your ENV vars]

    docker-machine.exe env default
    

    您可以手动安装它们,也可以根据 shell environment(cmdbashpower-shell)运行下列操作之一

    docker-machine env --shell=cmd # you need to run it manually
    docker-machine env --shell=bash > env-var-commands-tmp && . env-var-commands-tmp && rm env-var-commands-tmp
    docker-machine env --shell=powershell | Invoke-Expression
    
  1. 打开具有管理权限的 cmd。
  2. 执行以下命令

    Docker-machine env —— shell cmd 缺省值

  3. 您将收到以下输出

    设置 DOCKER _ TLS _ VERIFY = 1

    SET DOCKER _ HOST = tcp://192.168.99.102:2376

    SET DOCKER _ CERT _ PATH = C: 用户 DBashyal.DOCKER 机器默认

    设置 DOCKER _ MACHINE _ NAME = default

    运行这个命令来配置你的 shell:

    REM@FOR/f“ tokens = *”% i IN (‘ docker-machine env —— shell cmd default’) DO@% i

  4. 复制突出显示的行并在 cmd 上执行

    @ FOR/f“ tokens = *”% i IN (‘ docker-machine env —— shell cmd default’) DO@% i

  5. 执行以下命令

    码头工人

Windows10专业版 对我来说,Docker 服务正在运行,但是 Docker 仍然需要“启动”。也就是说,我在 Docker 托盘图标中没有选中“当你登录时启动 Docker”的设置。

在发现这一点之前,我已经进入程序文件夹 Docker 并点击“ Docker for Windows”。过了一会儿,显示了消息“ Docker 正在运行”。

我的 Windows10也有同样的问题,看看下面我是怎么解决的:

安装完 Docker 后,只需重启电脑,运行 Docker 应用程序(可能需要启用 Hyper-V) ,然后打开命令行并键入: 码头运营你好世界

一切正常:)

对于我来说,这个错误是在我删除 "%programdata%\docker\config"中的 daemon.json文件后解决的

我的 daemon.json的内容如下:

{
"hosts": ["tcp://0.0.0.0:2375"]
}

作为一些测试的一部分,我手动创建了这个。但是在我重新启动服务器之后,我开始得到这个问题中的错误。

这个错误真的很麻烦。我希望 Docker 开发公司能做点什么。这需要很多尝试和错误才能避开。感谢 Stackoverflow 和其他博客。就我而言,我使用的是 Windows10Pro。在使用 Docker for Windows Installer.exe 进行了几次失败的尝试后,我选择了 DockerToolbox.exe。然后我遇到了 An error occurred trying to connect: Get http://%2F%2F.%2Fpipe%2Fdocker_engine/v 。按照这些步骤,问题得到了解决。 首先,我去控制面板-> 打开或关闭 Windows 功能和未选中的 Hyper-V
enter image description here 接下来,以管理员身份打开 PowerShell:

docker-machine env --shell=powershell | Invoke-Expression
type bcdedit /set hypervisorlaunchtype auto

重新启动我的系统。然后我启动“ Docker 快速启动终端”,然后我在 shell 窗口中输入这个。

run "Docker for Windows"
docker run hello-world

很顺利,然后我打开命令提示符

docker run hello-world

它给出了错误: 然后我输入

set DOCKER_CERT_PATH=%USERPROFILE%\.docker\machine\machines\default
set DOCKER_HOST=tcp://192.168.99.100:2376
set DOCKER_MACHINE_NAME=default
set DOCKER_TLS_VERIFY=1

上面的大多数建议也是有帮助的。

右键单击托盘中的 Docker 图标,选择“切换到 Windows 容器...”。 可能会提示您启用容器特性。这样做,然后再次重新启动。

我在 Windows 10上安装 Docker CE for Windows Version 17.11.0-CE-rc4-win39(14244) Channel: edge e557194时遇到过类似的问题。

在 Command/cmd 窗口中,当我尝试运行 docker ps、 docker 版本、 docker 信息等命令时,每次都会出现类似“ error through connect: Get http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.34/version”这样的错误。

为了解决这个问题,

  1. 我使“ Hyper-V”关闭(未选中)从“打开或关闭 Windows 功能”,这需要重新启动操作系统。
  2. 在第一次重新启动后,我做了“ Hyper-V”在(检查) ,这再次要求重新启动操作系统。

在第二次重新启动后,上面的 docker 命令开始工作并提供正确的输出。

所以,转换超 V 关掉然后 开始为我解决了这个问题。

我在一个周末后看到了这个错误消息。在那之前我的设备都很好。我的配置和连接看起来正确。$docker-machine restart default在 Windows7上帮我修好了

我在运行 docker-compose up命令时遇到了这个错误。我的问题是,码头服务没有运行。所以我必须运行 services.msc并启动 Docker 服务。

enter image description here

我通过在 bash 中运行 {DOCKER_TOOLBOX_INSTALL_PATH}start.sh解决了这个错误。

在我的情况下,所有上述解决方案都没有解决。相反,Zilurranane 响应起到了帮助作用。

    cd "C:\Program Files\Docker\Docker"
./DockerCli.exe -SwitchDaemon
  1. 切换到 Windows 容器
  2. 码头信息
  3. 码头工人
  4. 切换回 Linux 容器
  5. 码头信息
  6. 维奥拉!

Windows 开关可能运行 Linux 也需要的缺失配置。

我从这个 问题中得到了解决方案。它不像 Nikesh 的回答说的 SwitchDaemon可以直接修复它。我认为您应该运行两次这个命令来将您的守护进程切换到前一个守护进程。

cd "C:\Program Files\Docker\Docker"
./DockerCli.exe -SwitchDaemon
# then check the docker OS/Arch
docker version
# You may see the different OS/Arch
./DockerCli.exe -SwitchDaemon
# then you got your images and containers back

这个命令只是将您的守护进程从默认守护进程切换到另一个守护进程(取决于您设置了什么)。当您切换到另一个守护进程时,前一个守护进程上的图像和容器将会消失(但不会删除)。

要在 Windows 中启动默认主机,我知道下面给出了三种方法,你可以使用其中之一。

  1. 启动或重新启动 Docker 已经创建了一个默认机器:

    docker-machine start default
    docker-machine restart default
    

    现在检查 docker-machine env

  2. 需要设置下列环境属性:

    set DOCKER_CERT_PATH=%USERPROFILE%\.docker\machine\machines\default
    set DOCKER_HOST=tcp://192.168.99.100:2376
    set DOCKER_MACHINE_NAME=default
    set DOCKER_TLS_VERIFY=1
    
  3. To create a new machine using the following command:

Windows 10/HyperV:

docker-machine create --driver hyperv default
docker-machine create -d hyperv default

Mac,Linux,windows 7 & 8:

docker-machine create --driver virtualbox default
docker-machine create -d virtualbox default

我也有过类似的问题。对我来说,我还没有从状态栏登录到 docker。我所做的就是从状态栏登录到 docker。一旦登录,我就能够正确地运行所有的命令。 尝试使用您的 Docker ID 和密码登录,也许这将解决您的问题。

我有个问题。我找了很多。我查了很多东西。但最终,解决我问题的方法是下面这个方法。

系统环境:

  • Windows10专业版
  • Docker 中的 Windows 引擎
  • Docker 版本20.10.21

解决方案

关闭 IP6 还有 重新启动服务和应用程序