我尝试使用docker login
中的aws ecr get-login --region eu-west-1
字符串登录我的AWS账户 - 但是,当我这样做时,我明白了:
警告:无法从守护程序获取默认注册表端点(连接期间出错:Get http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.26/info:open //./pipe/docker_engine:系统找不到指定的文件。在Windows上的默认守护程序配置中,必须提升docker客户端才能连接。此错误也可能表示docker守护程序未运行。)。使用系统默认值:https://index.docker.io/v1/ 连接期间出错:发布http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.26/auth:打开//./pipe/docker_engine:系统找不到指定的文件。在Windows上的默认守护程序配置中,必须提升docker客户端以进行连接。此错误还可能表示docker守护程序未运行
奇怪的是,这只是上周的工作。我在Windows 10上使用Cygwin。我已经验证了Docker在services.msc
中运行 - 我现在还不完全确定要检查的内容。
答案 0 :(得分:3)
如果要在Windows 10上的cygwin中运行docker命令,请从cygwin中调用以下命令:
bool_cols = [col for col in df if
df[col].dropna().value_counts().index.isin([0,1]).all()]
它将显示docker所需的环境变量:
docker-machine env --shell=bash
运行以下命令设置环境变量:
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)
答案 1 :(得分:2)
看起来您正试图通过将窗口管道路径传递给cygwin来打开管道。它被cygwin解释为http路径。
这可能是因为docker
命令在找到windows python之前找到了cygwin python。有几种解决方案。最简单的是切换回Windows上下文以执行docker命令。如果docker
实际上是docker.bat
,则以cmd.exe /c docker.bat
开始,否则cmd.exe /c docker.exe
。您也可以尝试cmd.exe /c start /w /i docker.bat
。或者一些变化。
您不希望直接在cygwin中执行任何docker
命令,因为它可能不知道如何在Windows路径和它期望的Linux路径之间进行转换。