我遇到以下问题:尝试从专用集线器中提取构建的docker映像并将其作为服务运行,但是出现以下错误
Failed to launch container: Failed to run 'docker -H unix:///var/run/docker.sock pull r.cfcr.io/path/to/repo/': exited with status 1; stderr='Error: Cannot perform an interactive login from a non TTY device '
这是我用来验证的fetch [] config.json信息:
{
"auths": {
"r.cfcr.io": {
"auth": "=auth_token="
}
},
"HttpHeaders": {
"User-Agent": "Docker-Client/18.06.1-ce (linux)"
}
}
您知道如何解决该问题吗?
答案 0 :(得分:0)
这里可能与问题无关,但是当尝试从Linux终端(例如Git bash或Docker quickstart终端,甚至Cygwin)从Linux之类的Windows终端登录Docker时,某些人可能会遇到完全相同的消息。
这里的诀窍是使用winpty docker login
或尝试使用此命令
docker login "${URL}" -u "${Username}" -p "${PASSWORD}"
答案 1 :(得分:0)
您必须将config.json文件保存在$ MESOS_SANDBOX的.docker目录中。 因此,使用以下文件列表创建.docker目录的档案库:
$ tar tvf docker-login.tar
drwx------ parvez/parvez 0 2019-06-12 21:45 .docker/
-rw------- parvez/parvez 177 2019-06-12 21:45 .docker/config.json
从mesos配置中获取并提取此存档。
"fetch": [{
"uri": "https://foo.com/docker-login.tar",
"executable": false,
"extract": true,
"cache": true
}],
它将在$ MESOS_SANDBOX路径下载并提取档案,并且docker pull应该成功。