Docker命令失败(在Windows中)

jim*_*mmy 66 docker

我试图在Windows机器上使用Docker并且看起来遇到了所有可能的问题.我的最新一个是:我的机器正在运行,但我似乎无法使用docker命令与它进行交互.如果我运行一个非常标准的命令,如:

docker ps
Run Code Online (Sandbox Code Playgroud)

我收到如下错误消息:

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.
Run Code Online (Sandbox Code Playgroud)

所以显然有些道路搞砸了.有谁知道这是什么路径以及如何解决这个问题?

jan*_*pol 59

运行docker ps和接收时:

尝试连接时发生错误:获取http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.24/containers/json:open //./pipe/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
Run Code Online (Sandbox Code Playgroud)

这是假设的%USERPROFILE%\.docker\machine\machines\default,其中是默认路径cert.pem,key.pem,ca-key.pem,和ca.pem搬运工文件; 虚拟机名称(由其创建docker-machine create)是default和Virtual Box DHCP服务器的下限(在VirtualBox->文件 - >首选项 - >网络 - >仅主机网络 - >在VirtualBox主机以太网适配器上悬停鼠标)是192.168. 99.100并且VirtualBox中没有运行其他VM.

  • 如果执行`docker-machine env --shell cmd`,它将显示这些指令,以及一个可复制粘贴的速记来运行它们 (4认同)
  • [如何在 Windows 中设置路径和环境变量](http://www.computerhope.com/issues/ch000549.htm) 有帮助吗? (2认同)

r59*_*590 18

Win 7中的问题相同.解决方案:

在Docker快速入门窗口中,在$ prompt下运行以下行:

your_user @ your_machine MINGW64~

$ eval $("C:\ Program Files\Docker Toolbox\docker-machine.exe"env default)

然后,你将能够运行"docker run hello-world".


aur*_*ath 17

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

docker-machine env --shell=powershell | Invoke-Expression
Run Code Online (Sandbox Code Playgroud)

  • `错误:没有指定机器名,也没有"默认"机器 (6认同)

Dun*_*ken 9

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

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

  • 为了解决一些困惑:在Windows上安装docker有两个版本:"Docker Toolbox"(旧版本,使用VirtualBox)和"Docker for Windows"(较新版本,使用本机Hyper-V).如果您正在运行Docker Toolbox,请参阅其他答案.如果您正在运行Docker for Windows,请使用此答案. (4认同)

小智 6

  1. 使用管理员权限打开cmd.
  2. 执行以下命令

    docker-machine env --shell cmd默认值

  3. 您将收到以下输出

    SET DOCKER_TLS_VERIFY = 1

    SET DOCKER_HOST = tcp://192.168.99.102:2376

    SET DOCKER_CERT_PATH = C:\ Users\DBashyal.docker\machine\machines\default

    SET DOCKER_MACHINE_NAME =默认

    REM运行此命令配置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. 执行以下命令

    码头工人


Sun*_*nil 5

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

docker-machine create --driver=virtualbox vbox-test
Run Code Online (Sandbox Code Playgroud)

然后执行命令

docker-machine env --shell=powershell | Invoke-Expression
Run Code Online (Sandbox Code Playgroud)

搞定了......


Sta*_*lav 5

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

解决它:

  1. 创建一个docker机器(只有你还没有)

    docker-machine create  default
    
    Run Code Online (Sandbox Code Playgroud)
  2. 获取docker客户端所需的ENV变量以连接到docker机器(服务器)[这需要每次都做或在ENV变量中设置]

    docker-machine.exe env default
    
    Run Code Online (Sandbox Code Playgroud)

    您可以手动安装或运行依赖于下列情况之一的shell environment(cmd,bash,power-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
    
    Run Code Online (Sandbox Code Playgroud)