首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Amazon私有DockerHub回购:无法解码提供的码头凭证错误

问Amazon私有DockerHub回购:无法解码提供的码头凭证错误
EN

Stack Overflow用户
提问于 2015-11-25 09:05:11
回答 1查看 790关注 0票数 6

我在DockerHub上有一个私有存储库,我正在尝试用ECS部署它。我总是收到以下错误:

代码语言:javascript
复制
Unable to decode provided docker credentials module="ecs credentials" type="dockercfg"

或者如果我尝试使用类型码头:

代码语言:javascript
复制
Unable to decode provided docker credentials module="ecs credentials" type="docker"

我已经尝试过在ECS开发者论坛上提到的所有可能性。

我试过:

代码语言:javascript
复制
ECS_ENGINE_AUTH_TYPE=dockercfg
ECS_ENGINE_AUTH_DATA='{"https://index.docker.io/v1/":{"auth":"<token>","email":"<email>"}}'

我也试过:

代码语言:javascript
复制
ECS_ENGINE_AUTH_TYPE=docker
ECS_ENGINE_AUTH_DATA='{"https://index.docker.io/v1/":{"username":"<username>","password":"<password>","email":"<email>"}}'

而且(因为https://godoc.org/github.com/aws/amazon-ecs-agent/agent/engine/dockerauth的文档):

代码语言:javascript
复制
ECS_ENGINE_AUTH_TYPE=docker
ECS_ENGINE_AUTH_DATA='{"https://index.docker.io/v1/<username>":{"username":"<username>","password":"<password>","email":"<email>"}}'

我也试过不用"“和”“在JSON周围..。同样的效果。我总是犯同样的错误。

我应该补充一下,我是从一个工作良好的ecs.config容器中获得S3的。我还手动重新键入了该文件,以防在下载该文件时出现一些可疑的格式设置(尽管我不知道为什么会出现这种情况,因为S3文件以字节流的形式出现)。

如果我将SSH放入实例并执行以下操作:

代码语言:javascript
复制
docker login --username=<username> --password=<password> --email=<email>

然后,我可以成功地提取图像:docker pull A/B:latest

但是,即使在我登录(因此docker生成了~/.docker/config.json文件)之后,我仍然从ECS获得相同的错误。

我应该提到更改ecs.config文件的所有操作如下:

  1. 将任务数更改为0
  2. 等待完成
  3. sudo stop ecs
  4. 更改配置文件
  5. sudo start ecs
  6. 将任务数更改为1

重复..。

越来越令人沮丧..。这应该如何工作,或者自文档编写以来,它是如何变化的?

任何帮助都将不胜感激。

编辑

我还尝试在/etc/ecs/ecs.config.json中设置JSON配置文件中的docker auth:

代码语言:javascript
复制
{
        "EngineAuthType": "docker",
        "EngineAuthData": {
                "https://index.docker.io/v1/": {
                        "username": "<me>",
                        "password": "<password>",
                        "email": "<email>"
                }
        }
}

这里描述了这方面的JSON配置:https://godoc.org/github.com/aws/amazon-ecs-agent/agent/config。这里的代码注释中也提到了这一点:https://github.com/aws/amazon-ecs-agent/blob/b197eddd9d5272eeac7dddaa2a84cc4c85522354/agent/engine/dockerauth/doc.go

更具体而言:

这些键可以通过设置环境变量"ECS_ENGINE_AUTH_TYPE“和"ECS_ENGINE_AUTH_DATA”来设置,也可以通过设置位于配置"ECS_AGENT_CONFIG_FILE_PATH“的JSON配置文件中的键"EngineAuthData”和"EngineAuthType“来设置(参见http://godoc.org/github.com/aws/amazon-ecs-agent/agent/config)。

再说一遍,犯同样的错误.

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-25 10:57:01

在花了一段时间查看ECS (https://github.com/aws/amazon-ecs-agent)的代码之后,我意识到问题出在哪里。问题是在电子邮件字段,应该删除!

所以,简单地回顾一下如何做到这一点:

您需要遵循这里的说明:http://docs.aws.amazon.com/AmazonECS/latest/developerguide/private-auth.html。

然而,所有的例子都包括电子邮件字段。

ecs.config应该如下所示:

代码语言:javascript
复制
ECS_ENGINE_AUTH_TYPE=dockercfg
ECS_ENGINE_AUTH_DATA={"https://index.docker.io/v1/":{"auth":"<your auth token>"}}

要在创建实例时从ecs.config容器加载S3,请遵循以下内容:http://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html,特别是“在AmazonS3中存储ecs.config文件”和“在启动时从AmazonS3加载ecs.config文件”标题。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33912280

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档