Docker命令失败(在Windows中)

Docker命令失败(在Windows中),docker,Docker,我试图在windows机器上使用Docker,但似乎遇到了所有可能的问题。我最新的一个是: 我的机器正在运行,但我似乎无法使用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

我试图在windows机器上使用Docker,但似乎遇到了所有可能的问题。我最新的一个是: 我的机器正在运行,但我似乎无法使用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.

所以很明显有些路是乱七八糟的。有人知道这是哪条路径以及如何修复吗?

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

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

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

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

运行
docker ps
并接收时:

尝试连接时出错:Get:open/./pipe/docker\u引擎:系统找不到指定的文件

需要设置以下环境属性:

 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
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.pem
key.pem
ca-key.pem
ca.pem
docker文件;虚拟机名称(由
docker machine create
创建)是
default
和虚拟机DHCP服务器的下限(位于VirtualBox->File->Preferences->Network->Host only Network->鼠标悬停在VirtualBox纯主机以太网适配器上)是192.168.99.100,没有其他虚拟机在VirtualBox中运行。

Win 7上也存在同样的问题。解决方案:

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

你的_user@your_machine明W64~

$eval$(“C:\Program Files\Docker Toolbox\Docker machine.exe”环境默认值)


然后,您将能够运行“docker run hello world”。

我在Windows 2016计算机上遇到过此问题。发生的原因是docker服务未启动。在我的例子中,docker服务失败,出现以下错误

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


删除C:\ProgramData\docker.pid文件成功了。

我查看了上述所有答案,但没有一个有效。 然后我发现这个命令必须在linux命令行上运行,比如bash。 因此,请尝试:

在Docker工具箱附带的Docker bash终端VM中键入命令,而不是windows cmd


如果您已经确保docker已启动

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

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
,并添加这些环境变量


如果您希望这些变量是持久的,请在windows()中定义它们。

如下所示。我从另一个论坛复制了答案

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

在我的情况下,它关闭了默认属性。
我不得不在Windows上处理同样的问题

要解决这个问题:

  • 创建一台docker机器(仅当您没有时)

  • 获取docker客户端连接到docker机器(服务器)所需的环境变量[每次都需要这样做或在环境变量中设置]

    docker-machine.exe env default
    
    根据您的
    shell环境
    cmd
    bash
    powershell
    ),您可以手动安装它们,也可以运行以下操作之一

  • 使用管理员权限打开cmd
  • 执行以下命令 docker机器环境--shell cmd默认值

  • 您将收到以下输出

    设置DOCKER\u TLS\u VERIFY=1

    设置DOCKER\u主机=tcp://192.168.99.102:2376

    设置DOCKER\u CERT\u PATH=C:\Users\DBashyal.DOCKER\machine\machines\default

    设置DOCKER\u MACHINE\u NAME=默认值

    REM运行此命令以配置shell:

    REM@FOR/f“令牌=*%i IN('docker-machine env--shell cmd default')DO@%i

  • 复制高亮显示的行并在cmd上执行

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

  • 执行以下命令

    docker ps

  • Windows 10专业版 对我来说,Docker服务正在运行,但Docker仍然需要“启动”。也就是说,我在Docker托盘图标中未选中“登录时启动Docker”设置


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

    我的Windows 10也出现了同样的问题。以下是我为解决此问题所做的工作:

    安装Docker后,只需重新启动电脑,运行Docker应用程序(可能需要启用Hyper-V),然后打开命令行并键入: docker run hello world


    一切正常:)

    对我来说,在我删除
    %programdata%\docker\config“

    my
    daemon.json
    中的内容如下:

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

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

    这个错误真的很麻烦。我希望Docker开发人员能做点什么。这需要很多的尝试和错误来绕开。感谢Stackoverflow和其他博客。就我而言,我使用的是Windows10Pro。在多次尝试Docker for Windows Installer.exe失败后,我决定使用DockerToolbox.exe。然后我在尝试连接时遇到了一个错误:Ge
    {
      "hosts": ["tcp://0.0.0.0:2375"]
    }
    
    docker-machine env --shell=powershell | Invoke-Expression
    type bcdedit /set hypervisorlaunchtype auto
    
    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
    
        cd "C:\Program Files\Docker\Docker"
        ./DockerCli.exe -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 
    
    docker-machine start default
    docker-machine restart default
    
    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-machine create --driver hyperv default
    docker-machine create -d hyperv default
    
    docker-machine create --driver virtualbox default
    docker-machine create -d virtualbox default