首页 > 解决方案 > AWS ECR 尝试使用 Get-ECRLoginCommnad 失败

问题描述

我是 AWS 的新手,我正在尝试在 Windows 上的 ECR 上注册图像。为此,我使用 PowerShell 连接到 AWS。

下面是我的版本

PS C:\> aws --version

aws-cli/2.0.0 Python/3.7.5 Windows/10 botocore/2.0.0dev4

我使用 aws configure 命令登录。我去了用户 - > createdUser - > 访问密钥和秘密密钥的安全凭证。

当我使用Get-ECRLoginCommand

PS C:\> Get-ECRLoginCommand

Get-ECRLoginCommand : The request signature we calculated does not match the signature you provided. Check your AWS
Secret Access Key and signing method. Consult the service documentation for details.
At line:1 char:1
+ Get-ECRLoginCommand
+ ~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (Amazon.PowerShe...inCommandCmdlet:GetECRLoginCommandCmdlet) [Get-ECRL
   oginCommand], InvalidOperationException
    + FullyQualifiedErrorId : Amazon.ECR.AmazonECRException,Amazon.PowerShell.Cmdlets.ECR.GetECRLoginCommandCmdlet  

有人可以帮我如何在 ECR 上注册 docker 映像吗?

标签: amazon-web-servicesaws-cliamazon-ecr

解决方案


即使在 Windows 上,

在 Linux 和 macOS 上使用推送指令更容易。

您只需要安装 AWS CLI、docker 并设置 AWS 凭证。

安装 AWS CLI 版本 2

msiexec.exe /i https://awscli.amazonaws.com/AWSCLIV2.msi

确认安装

C:\> aws --version
aws-cli/2.2.43 Python/3.8.8 Windows/10 exe/AMD64 prompt/off

在 AWS IAM 中,创建具有所需角色的用户。

不建议这样做。我只是用 AdministratorAccess 创建了一个用户。

设置您的 AWS 凭证

aws configure

AWS Access Key ID [None]: Access Key
AWS Secret Access Key [None]: Secret Key
Default region name [None]: us-west-2
Default output format [None]: json

现在,验证 Amazon ECR 注册表的 docker

aws ecr get-login-password | docker login --username AWS --password-stdin YOUR-REGISTRY-URL

Login Succeeded

最后,推送一个 Docker 镜像

docker build -t YOUR-BUILD-NAME .
docker tag YOUR-BUILD-NAME:latest YOUR-REGISTRY-URL/YOUR-BUILD-NAME:latest
docker push YOUR-REGISTRY-URL/YOUR-BUILD-NAME:latest

推荐阅读