从专用集线器提取图像的问题

时间:2019-04-23 13:48:18

标签: docker mesosphere dcos

我遇到以下问题:尝试从专用集线器中提取构建的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)"
    }
}

您知道如何解决该问题吗?

2 个答案:

答案 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应该成功。