在Cygwin的Docker命令失败 – Docker服务启动

我尝试从aws ecr get-login --region eu-west-1login到我的AWS账户,但是,当我这样做时,我得到了这个:

警告:无法从守护进程获取默认registry端点(连接时出错:获取http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.26/info :open //./pipe/docker_engine:系统找不到在Windows的默认守护进程configuration中,docker客户端必须被升级来连接,这个错误也可能表明docker守护进程没有运行。 使用系统默认值: https ://index.docker.io/v1/连接时出错:发布http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.26/auth :打开//./pipe/docker_engine:该系统找不到指定的文件。 在Windows的默认守护进程configuration中,docker客户端必须运行提升才能连接。 这个错误也可能表明docker守护进程没有运行

奇怪的是上周刚刚工作。 我在Windows 10上使用Cygwin。我已经validationDocker在services.msc运行 – 我不完全确定现在要检查什么。

它看起来像你试图通过传递一个Windowspipe道path到cygwin打开一个pipe道到服务。 它被cygwin解释为一个httppath。

这可能是因为docker命令在find窗口python之前find了cygwin python。 有几个解决scheme。 最简单的是切换回一个Windows上下文来执行docker命令。 如果docker.bat实际上是docker.bat那么使用cmd.exe /c docker.bat启动它,否则使用cmd.exe /c docker.bat启动它。 你也可以尝试cmd.exe /c start /w /i docker.bat 。 或者一些变化。

你不想直接在cygwin中执行任何docker命令,因为它可能不知道如何在windowspath和它期望的linuxpath之间进行转换。

如果你想在Windows 10上运行cygwin中的docker命令,请从cygwin中调用以下命令:

 docker-machine env --shell=bash 

它将显示docker所需的环境variables:

 export DOCKER_TLS_VERIFY="1" export DOCKER_HOST="tcp://192.168.xx.xx:2376" export DOCKER_CERT_PATH="C:\Users\...\machines\default" export DOCKER_MACHINE_NAME="default" export COMPOSE_CONVERT_WINDOWS_PATHS="true" # Run this command to configure your shell: # eval $(docker-machine env --shell=bash) 

运行以下命令设置环境variables:

 eval $(docker-machine env --shell=bash)