当我尝试推送一个docker容器时,我收到此错误 否认:您的授权令牌已过期。
我有aws ecr get-login --no-include-email --region us-east-1,我试过有人在这里发布的hack,你拿出https没有用过。
当我运行aws ecr get-login ...我得到的代码我复制并粘贴并获得成功的消息但是当我尝试推送我的docker容器时,我得到了拒绝:你的授权令牌已经过期了。我使用Docker版本Docker版本17.03.1-ce。任何想法我能做什么?
谢谢!
答案 0 :(得分:0)
一个原因可能是 aws-cli 版本。这个 CLI 工具的版本似乎是一个 Python 包,可以在 aws --version
中看到。我在版本 aws-cli/2.1.29
中遇到此错误,但在旧版本 aws-cli/1.18.40
中没有遇到此错误。
“aws ecr get-login”命令是deprecated,亚马逊建议改用“aws ecr get-login-password”。
答案 1 :(得分:0)
请使用以下命令组合:
aws ecr get-login-password --region <REGION> | docker login --username AWS --password-stdin <AWS_ACCOUNT_NO>.dkr.ecr.us-east-1.amazonaws.com
引用文档:
"此命令使用 GetAuthorizationToken API 检索并显示身份验证令牌,您可以使用该 API 对 Amazon ECR 注册表进行身份验证。您可以将授权令牌传递给您偏好的容器客户端的登录命令,例如 Docker命令行界面。”
参考:https://docs.aws.amazon.com/cli/latest/reference/ecr/get-login-password.html