Amazon Elastic Beanstalk 需要 Docker 的明文密钥才能访问 Docker Hub 上的私有映像。根据AEB上的说明,您只需运行docker login
即可在"%UserProfile%/.docker/config.json"中生成这些凭据。但是,这会生成以下文件:
{
"auths": {
"https://index.docker.io/v1/": {}
},
"HttpHeaders": {
"User-Agent": "Docker-Client/17.12.0-ce (windows)"
},
"credsStore": "wincred"
}
凭据存储在Windows凭据管理器"wincred"中。
如何强制在 config.json 文件中临时生成凭据?
- 从"%UserProfile%/.docker/config.json"文件中删除最后一行:
(不要忘记删除尾随的","(
{
"auths": {
"https://index.docker.io/v1/": {}
},
"HttpHeaders": {
"User-Agent": "Docker-Client/17.12.0-ce (windows)"
}
}
- 保存 config.json 文件。
- 运行
docker login
.
如果你查看 config.json 文件,你现在会找到你需要的东西。据我了解,在您的用户名或密码更改之前,这些凭据应该有效(您可以看到为什么在凭据管理器中使用这些凭据是件好事!
复制身份验证密钥后,您需要将 config.json 文件还原到其原始状态:
{
"auths": {
"https://index.docker.io/v1/": {}
},
"HttpHeaders": {
"User-Agent": "Docker-Client/17.12.0-ce (windows)"
},
"credsStore": "wincred"
}
然后再次运行docker login
,将事情恢复原样。