我有以下问题:尝试从私有集线器拉出已构建的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)"
}
}
你知道如何解决这个问题吗?
可能没有与此处的问题相关联,但有些人在尝试从Windows上的类似Linux的终端登录时,可能会遇到完全相同的消息,例如Git bash或Docker quickstart终端甚至是Cygwin。
这里的诀窍是使用winpty docker login
或尝试使用此命令
docker login "${URL}" -u "${Username}" -p "${PASSWORD}"
您必须将config.json文件保存在$ MESOS_SANDBOX的.docker目录中。因此,使用下面的文件列表创建.docker目录的archieve:
$ 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应该成功。