我正在使用AWS Elastic Beanstalk来运行一个多容器Docker构建,并且遇到了让我的私有Docker存储库工作的问题。
我已经创建了一个"dockercfg.json"文件来保存我的授权,如下所示:
{"https://index.docker.io/v1/":{"auth":"59...22","email":"ra...@...com"}}
并将其上传到与我的EB示例相同区域中的S3存储桶中,然后创建一个Dockerrun.aws.json文件,如下所示:
{
"AWSEBDockerrunVersion": 2,
"authentication": {
"bucket": "hayl-docker",
"key": "dockercfg.json"
},
"containerDefinitions": [
{
"name": "hayl",
"image": "raddishiow/hayl-docker:uwsgi",
"essential": true,
"memory": 512,
"portMappings": [
{
"hostPort": 443,
"containerPort": 443
}
]
}
]
}
但我总是收到这样的错误:
已停止,原因是无法取出容器错误:守护程序的错误响应:raddishiow/hayl-docker的拉入访问被拒绝,存储库不存在或可能需要"docker登录"
我已经验证了AWS能够访问"docker cfg.json"文件。我不确定它是否使用了凭据...
我已经将docker存储库简单地更改为public,它成功地拉取,但这不是一个真正的选项,因为图像包含敏感代码,我不希望在公共领域。
我使用的auth令牌是使用docker网站创建的,因为我的本地docker配置文件没有存储我的登录信息......我试过手动base64编码我的密码,就像docker将其存储在配置文件中一样,但这也不起作用。
任何帮助都将不胜感激,因为我已经为这件事烦恼了好几天了。
1条答案
按热度按时间ia2d9nvy1#
原来“auth”令牌必须从编码为base64的用户名和密码生成,格式为“用户名:密码”。