Docker - 被拒绝:您的授权令牌已过期

问题描述 投票:0回答:4

当我尝试推送 docker 容器时出现此错误 被拒绝:您的授权令牌已过期。

我有 aws ecr get-login --no-include-email --region us-east-1,我尝试了有人在这里发布的黑客攻击,您取出了 https,但没有任何效果。

当我运行 aws ecr get-login ...我得到复制并粘贴的代码并收到一条成功消息,但当我尝试推送我的 docker 容器时,我收到拒绝:您的授权令牌已过期。 我使用的是 docker 版本 Docker 版本 17.03.1-ce。 有什么想法我能做什么吗?

谢谢!

amazon-web-services docker amazon-ecr
4个回答
8
投票

请使用以下命令组合:

aws ecr get-login-password --region <REGION> | docker login --username AWS --password-stdin <AWS_ACCOUNT_NO>.dkr.ecr.<AWS_REGION_NAME>.amazonaws.com

引用文档:

“此命令使用 GetAuthorizationToken API 检索并显示身份验证令牌,您可以使用该 API 对 Amazon ECR 注册表进行身份验证。您可以将授权令牌传递到您首选的容器客户端(例如 Docker CLI)的登录命令。 ”

参考:https://docs.aws.amazon.com/cli/latest/reference/ecr/get-login-password.html


1
投票

@Robert 的评论(请参阅对问题本身的评论)对我来说已经足够了。错误在于

aws ecr get-login-password --region <REGION> | docker login --username AWS --password-stdin <AWS_ACCOUNT_NO>.dkr.ecr.<AWS_REGION_NAME>.amazonaws.com

不在 sudo 上,但实际的 docker 推送是。


0
投票

原因之一可能是 aws-cli 版本。这个CLI工具的版本似乎是一个Python包,可以在

aws --version
中看到。我在
aws-cli/2.1.29
版本中遇到了此错误,但在旧版本
aws-cli/1.18.40
中没有遇到此错误。

“aws ecr get-login”命令已已弃用,亚马逊建议改用“aws ecr get-login-password”。


0
投票

扩展@Amit Meena 的答案,因为我陷入了这个错误:

不能在网址中包含存储库名称。

不好

aws ecr get-login-password --region <REGION> | docker login --username AWS --password-stdin <AWS_ACCOUNT_NO>.dkr.ecr.<AWS_REGION_NAME>.amazonaws.com/<REPO_NAME>

aws ecr get-login-password --region <REGION> | docker login --username AWS --password-stdin <AWS_ACCOUNT_NO>.dkr.ecr.<AWS_REGION_NAME>.amazonaws.com
© www.soinside.com 2019 - 2024. All rights reserved.