Docker命令失败(在Windows中)
我试图在windows机器上使用Docker,但似乎遇到了所有可能的问题。我最新的一个是: 我的机器正在运行,但我似乎无法使用docker命令与之交互。如果我运行非常标准的命令,如: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
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-machine.exe env default
根据您的shell环境
(cmd
,bash
,powershell
),您可以手动安装它们,也可以运行以下操作之一
在发现这一点之前,我已经转到程序文件夹Docker并单击“Docker for Windows”。过了一会儿,显示了“Docker正在运行”消息。我的Windows 10也出现了同样的问题。以下是我为解决此问题所做的工作: 安装Docker后,只需重新启动电脑,运行Docker应用程序(可能需要启用Hyper-V),然后打开命令行并键入: docker run hello world
一切正常:)对我来说,在我删除
%programdata%\docker\config“
mydaemon.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