Iul*_*ian 6 amazon-web-services amazon-ecs docker dockerhub docker-registry
我在DockerHub上有一个私有存储库,我试图用ECS部署它.我总是得到以下错误:
Unable to decode provided docker credentials module="ecs credentials" type="dockercfg"
Run Code Online (Sandbox Code Playgroud)
或者如果我尝试使用类型的docker:
Unable to decode provided docker credentials module="ecs credentials" type="docker"
Run Code Online (Sandbox Code Playgroud)
我已经尝试了ECS开发者论坛上提到的所有可能性.
我试过了:
ECS_ENGINE_AUTH_TYPE=dockercfg
ECS_ENGINE_AUTH_DATA='{"https://index.docker.io/v1/":{"auth":"<token>","email":"<email>"}}'
Run Code Online (Sandbox Code Playgroud)
我也尝试过:
ECS_ENGINE_AUTH_TYPE=docker
ECS_ENGINE_AUTH_DATA='{"https://index.docker.io/v1/":{"username":"<username>","password":"<password>","email":"<email>"}}'
Run Code Online (Sandbox Code Playgroud)
而且(因为https://godoc.org/github.com/aws/amazon-ecs-agent/agent/engine/dockerauth上的文档):
ECS_ENGINE_AUTH_TYPE=docker
ECS_ENGINE_AUTH_DATA='{"https://index.docker.io/v1/<username>":{"username":"<username>","password":"<password>","email":"<email>"}}'
Run Code Online (Sandbox Code Playgroud)
我也试过没有围绕JSON的''和'""相同的效果.我总是得到同样的错误.
我应该添加我从S3容器获取ecs.config工作正常.我还手动重新输入文件,以防下载文件时出现一些可疑的格式(虽然我不知道这是怎么回事,因为S3文件是一个字节流).
如果我通过SSH连接到实例并执行以下操作:
docker login --username=<username> --password=<password> --email=<email>
Run Code Online (Sandbox Code Playgroud)
然后我可以成功地拉动图像: docker pull A/B:latest
但是,即使我登录后(因此docker生成〜/ .docker/config.json文件),我仍然从ECS得到相同的错误.
我应该提到改变ecs.config文件的所有操作都按如下方式完成:
sudo stop ecs sudo start ecs 重复...
它变得非常令人沮丧.自从编写文档以来,它应该如何工作或者它有何变化?
任何帮助,将不胜感激.
编辑
我还尝试在/etc/ecs/ecs.config.json中的JSON配置文件中设置docker auth:
{
"EngineAuthType": "docker",
"EngineAuthData": {
"https://index.docker.io/v1/": {
"username": "<me>",
"password": "<password>",
"email": "<email>"
}
}
}
Run Code Online (Sandbox Code Playgroud)
此处描述了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)
这又是一次,给出了同样的错误......
花了一些时间查看ECS代理的代码(https://github.com/aws/amazon-ecs-agent)后,我意识到问题出在哪里.问题出在电子邮件领域,应删除!
所以,只是回顾一下如何做到这一点:
您需要按照此处的说明操作:http://docs.aws.amazon.com/AmazonECS/latest/developerguide/private-auth.html.
但是,所有示例都包含电子邮件字段.
本ecs.config应该是这样的:
ECS_ENGINE_AUTH_TYPE=dockercfg
ECS_ENGINE_AUTH_DATA={"https://index.docker.io/v1/":{"auth":"<your auth token>"}}
Run Code Online (Sandbox Code Playgroud)
要在ecs.config创建实例时从S3容器加载,请按照以下步骤操作:http://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html,尤其是"存储ecs.config" Amazon S3中的文件"和"在启动时从Amazon S3加载ecs.config文件"标题.
| 归档时间: |
|
| 查看次数: |
598 次 |
| 最近记录: |