235

我正在尝试将 docker 映像推送到 Amazon ECR 注册表。我正在使用 docker 客户端 Docker 版本 1.9.1,构建a34a1d5. 我aws ecr get-login --region us-east-1用来获取 docker 登录凭据。然后我使用这些凭据成功登录,如下所示:

docker login -u AWS -p XXXX -e none https://####.dkr.ecr.us-east-1.amazonaws.com
WARNING: login credentials saved in /Users/ar/.docker/config.json
Login Succeeded

但是当我尝试推送我的图像时,我收到以下错误:

$ docker push ####.dkr.ecr.us-east-1.amazonaws.com/image:latest
The push refers to a repository [####.dkr.ecr.us-east-1.amazonaws.com/image] (len: 1)
bcff5e7e3c7c: Preparing 
Post https://####.dkr.ecr.us-east-1.amazonaws.com/v2/image/blobs/uploads/: no basic auth credentials

我确保 aws 用户具有正确的权限。我还确保存储库允许该用户推送到它。只是为了确保这不是问题,我将注册表设置为允许所有用户完全访问。没有什么能改变"no basic auth credentials"错误。我不知道如何开始调试,因为所有流量都是加密的。

更新

所以当我意识到我的问题的根本原因时,我有一点 Homer Simpson D'Oh 的感觉。我可以访问多个 AWS 账户。即使我aws configure用来为设置存储库的帐户设置凭据,aws cli 实际上也在使用环境变量AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY. 因此,当我这样做时,aws ecr get-login它返回了错误帐户的登录信息。我没有注意到帐号是不同的,直到我现在才回去尝试一些建议的答案。当我删除环境变量时,一切正常。我猜这个故事的座右铭是,如果您遇到此错误,请确保您登录的存储库与您应用于图像的标签匹配。

4

46 回答 46

173

如果你跑$(aws ecr get-login --region us-east-1),一切都会为你完成

2021 年 7 月更新:

get-login现在在 AWS CLI 的版本 1 中已弃用。如果您使用的是 AWS CLI 版本 2,则必须使用get-login-password.

您可以将输出通过管道get-login-password传输到您的 docker login 命令,以向您的 ECR 注册表验证 docker:

aws ecr get-login-password | docker login --username AWS --password-stdin ####.dkr.ecr.us-east-1.amazonaws.com

现在您应该可以docker push直接进入您的 ECR 注册表。

于 2016-01-28T12:04:45.247 回答
59

就我而言,这是 Docker for Windows 及其对 Windows 凭据管理器的支持的一个错误。

打开~/.docker/config.json并删除"credsStore": "wincred"条目。

这将导致凭据被直接写入config.json。之后您必须重新登录。

您可以通过GitHub 上的票#22910#24968跟踪此错误。

于 2016-08-04T18:16:12.560 回答
52

如果您使用配置文件,请不要忘记传递--profile=XXXaws ecr get-login.

于 2016-03-31T20:16:46.750 回答
50

更新

由于 AWS CLI 版本 2 -aws ecr get-login已弃用,正确的方法是aws ecr get-login-password.

因此,正确和更新的答案如下: docker login -u AWS -p $(aws ecr get-login-password --region us-east-1) xxxxxxxx.dkr.ecr.us-east-1.amazonaws.com

于 2020-04-02T07:40:44.073 回答
32

我也有这个问题。我发生的事情是我忘记运行运行后返回给我的命令

aws ecr get-login --region ap-southeast-2

该命令返回了一个大块,其中包括该docker login命令!我没有意识到。它应该返回如下内容:

docker login -u AWS -p <your_token_which_is_massive> -e none <your_aws_url>

复制并粘贴此命令,然后运行您的 docker push 命令,如下所示:

docker push 8888888.blah.blah.ap-southwest-1.amazonaws.com/dockerfilename
于 2016-11-02T00:37:29.773 回答
16

即使没有打开权限,这也应该有效。请参阅文档:私有注册表身份验证

[编辑:实际上,我在进行第二次测试时也遇到了权限问题。请参阅Docker push to AWS ECR private repo failed with malformed JSON )。]

尽管如此,我也遇到了同样的问题;我不知道为什么,但是我成功地使用了文档中描述的更冗长的身份验证机制来获取授权令牌

AWS CLI 和 Docker 版本:

$ aws --version
aws-cli/1.9.17 Python/2.7.6 Linux/3.16.0-38-generic botocore/1.3.17
$ docker --version
Docker version 1.9.1, build a34a1d5

获取身份验证令牌('docker 密码')。

aws ecr get-authorization-token --region us-east-1 --output text \
    --query authorizationData[].authorizationToken | base64 -d | cut -d: -f2

注意:我的 ~/.aws/config 指定了不同的默认区域,因此我需要明确设置--region us-east-1.

以交互方式登录(更改############为您的 AWS 账户 ID):

docker login -u AWS https://############.dkr.ecr.us-east-1.amazonaws.com/
password: <paste the very long password from above>
email: <I left this blank>

推送一个图像(假设你已经制作了一个 docker image test):

docker tag test:latest ############.dkr.ecr.us-east-1.amazonaws.com/test:latest
docker push ############.dkr.ecr.us-east-1.amazonaws.com/test:latest
The push refers to a repository [910732017890.dkr.ecr.us-east-1.amazonaws.com/test] (len: 1)
d5122f58a2e1: Pushed 
7bddbca3b908: Pushed 
latest: digest: sha256:bc0b521fd398bd1a2ef58a289dcb910334608723fd570e7bddb36eacd0060363 size: 4378
于 2016-01-09T10:15:09.937 回答
15

尝试:

eval $(aws ecr get-login --no-include-email | sed 's|https://||')

推前。

于 2017-10-03T01:40:39.033 回答
13

如果对任何人有帮助...

我的问题是我必须使用该--profile选项才能使用凭据文件中的正确配置文件进行身份验证。

接下来,我省略了该--region [region_name]命令,该命令也给出了“没有基本身份验证凭据”错误。

我的解决方案是改变我的命令:

aws ecr get-login

对此:

aws --profile [profile_name] ecr get-login --region [region_name]

例子:

aws --profile foo ecr get-login --region us-east-1

希望对某人有所帮助!

于 2017-02-27T14:05:37.093 回答
9

Windows 上的 wincred 凭据管理器中存在一个已知错误。从生成的登录命令中删除“https://”可以解决这个问题。

docker login -u AWS -p <password> <aws_account_id>.dkr.ecr.<region>.amazonaws.com

代替

docker login -u AWS -p <password> https://<aws_account_id>.dkr.ecr.<region>.amazonaws.com

另请参阅故障排除页面

于 2017-01-18T12:35:08.297 回答
9

我遇到了同样的问题。

生成新的 AWS 凭证(访问密钥)并使用新凭证重新配置 AWS CLI 解决了该问题。

早些时候,aws ecr get-login --region us-east-1使用无效的 EC 注册表 URL 生成了 docker login 命令。

于 2016-01-09T14:59:17.420 回答
6
  1. 确保您首先创建了 ECR 注册表。
    然后按照 ECR 推送命令说明,剪切并粘贴以下命令
  2. 如果您使用多个 AWS 账户,请执行 docker login 命令(Mac/Linux 上的 eval 跳过剪切和粘贴)
    eval $(aws ecr get-login --region us-east-1)
    添加 --profile
    eval $(aws ecr get-login --region us-east-1 --profile your-profile)
  3. docker build -t image-name .
  4. docker tag image-name:latest ############.dkr.ecr.us-east-1.amazonaws.com/image-name:latest
  5. docker push ############.dkr.ecr.us-east-1.amazonaws.com/image-name:latest

如果出现错误,请确保再次运行所有命令!您使用的凭据aws ecr get-login是临时的,将过期。

于 2016-10-31T03:57:04.383 回答
6

PowerShell中的Windows上,使用:

Invoke-Expression $(aws ecr get-login --no-include-email)
于 2019-02-01T18:35:00.873 回答
5

我遇到这个问题的原因不同:我需要推送到与我的 AWS 账户(客户的 ECR 注册表)无关的注册表。客户通过将我的 IAM id(例如,arn:aws:iam::{AWS ACCT #}:user/{Username})添加为委托人,在注册表的 Permissions 选项卡下授予我访问权限。我尝试使用通常的步骤登录:

$(aws ecr get-login --region us-west-2 --profile profilename)
docker push {Client AWS ACCT #}.dkr.ecr.us-west-1.amazonaws.com/imagename:latest

这当然导致no basic auth credentials. 事实证明,将您登录到与您的登录关联的注册表aws ecr get-login的 ECR ,回想起来这很有意义。解决方案是告诉您要登录的注册表。aws ecr get-login

$(aws ecr get-login --region us-west-2 --profile profilename --registry-ids {Client AWS ACCT #})

之后,docker push工作就好了。

于 2016-10-19T15:45:36.573 回答
5

就我而言,在运行之后aws ecr get-login --no-include-email --region *****,我只是复制了该命令的输出,格式为docker login -u *** -p ************,然后将其粘贴到提示符中。推进继续进行。

于 2018-05-14T20:34:12.630 回答
5

刚刚从 AWS 中删除了 get-login 的更新,改为使用 get-login-password:

sudo docker login -u AWS -p $(aws ecr get-login-password --region <region> - 
-profile <profile>) <account id>.dkr.ecr.eu-north-1.amazonaws.com 

如果使用默认凭据,请不要忘记删除 --profile 标志

于 2020-07-23T14:27:42.267 回答
4

运行此命令后:

(aws ecr get-login --no-include-email --region us-west-2)

只需从输出中运行 docker login 命令

docker login -u AWS -p epJ....

是docker登录ECR的方式

于 2018-10-21T23:38:10.340 回答
4

AWS 文档告诉您执行以下命令(适用于 ap-southeast-2 区域)

aws ecr get-login --region ap-southeast-2

当我遇到这个问题时,根据该文档,我不清楚您需要将此命令的结果输入终端并执行它。

对我有用的修复是将结果复制到剪贴板

aws ecr get-login --region ap-southeast-2 | pbcopy

将结果粘贴到命令行并执行

于 2016-09-29T23:52:51.760 回答
4

Docker CLI 不支持本机 IAM 身份验证方法。要对Docker 推送和拉取请求进行身份验证和授权,请按照此步骤操作。

步骤1

检查是否正确配置了 aws 凭据。要配置 AWS 凭证,请运行以下命令并提供您的 aws 凭证。

aws configure

第2步

您可以使用 get-login-password 向 Amazon ECR 私有注册表验证 Docker(推荐)

linux和msc

aws ecr get-login-password --region <your region> | docker login --username AWS --password-stdin <aws_account_id>.dkr.ecr.<your region>.amazonaws.com

用于窗户

(Get-ECRLoginCommand).Password | docker login --username AWS --password-stdin aws_account_id.dkr.ecr.<your region>.amazonaws.com

或者

您还可以使用 --get-login 方法(但公开凭据)(不推荐)。

适用于 linux 和 mac

$(aws ecr get-login --region <your region> --no-include-email)

用于窗户

Invoke-Expression -Command (Get-ECRLoginCommand -Region <your region>).Command

如果您登录成功,那么您就可以开始了。否则请参阅aws 文档以了解错误

步骤 - 3

将您的图像推送到回购

  1. 标记您的图像

    泊坞窗标签 <aws_account_id>.dkr.ecr..amazonaws.com/my-web-app

  2. 使用以下命令推送您的图像。

    docker push <aws_account_id>.dkr.ecr..amazonaws.com/my-web-app

注意:这是基于令牌的登录,生成的授权令牌仅在 12 小时内有效

于 2020-12-23T09:38:32.403 回答
3

aws-cli 给出的 docker 命令有点不对劲......

使用 docker login 时,docker 将在您的钥匙串或 ~/.docker/config.json 文件中保存一个 server:key 对

如果它https://7272727.dkr.ecr.us-east-1.amazonaws.com在推送期间将密钥保存在查找密钥下将失败,因为 docker 将寻找名为7272727.dkr.ecr.us-east-1.amazonaws.comnot的服务器https://7272727.dkr.ecr.us-east-1.amazonaws.com

使用以下命令登录:

eval $(aws ecr get-login --no-include-email --region us-east-1 --profile yourprofile | sed 's|https://||')

运行命令后,您将收到'Login Succeeded'消息,然后您
的推送命令应该可以工作了

于 2019-01-09T22:27:21.907 回答
3

如果 ecr 登录失败,通常会引发此错误。我使用的是windows系统,我在管理员模式下使用“Powershell”首先登录到ecr。

Invoke-Expression $(aws ecr get-login --no-include-email)

这应该输出“登录成功”。

于 2019-12-09T02:12:10.930 回答
2

以下命令对我有用:

sudo $(aws ecr get-login --region us-east-1 --no-include-email)

然后我运行这些命令:

sudo docker tag e9ae3c220b23(image_id) aws_account_id.dkr.ecr.region.amazonaws.com/my-web-app

sudo docker push aws_account_id.dkr.ecr.region.amazonaws.com/my-web-app
于 2019-04-25T13:41:47.410 回答
2

只是补充一下,以防万一有人像我一样从未阅读过 F 手册,
我遵循了上面所有建议的步骤,例如

aws ecr get-login-password --region eu-west-1 | docker login --username AWS --password-stdin 123456789.dkr.ecr.eu-west-1.amazonaws.com

并且总是得到
我创建了一个名为的注册表的无基本身份验证凭据

123456789.dkr.ecr.eu-west-1.amazonaws.com/my.registry.com/namespace 

并试图推送一个名为 alpine:latest 的图像

123456789.dkr.ecr.eu-west-1.amazonaws.com/my.registry.com/namespace/alpine:latest
2c6e8b76de: Preparing
9d4cb0c1e9: Preparing
1ca55f6ab4: Preparing
b6fd41c05e: Waiting
ad44a79b33: Waiting
2ce3c1888d: Waiting
no basic auth credentials   

代表我犯了一个愚蠢的错误,因为我必须使用完整的容器路径在 ecr 中创建一个注册表。
我使用完整的容器路径创建了一个新注册表,而不是以命名空间结尾

123456789.dkr.ecr.eu-west-1.amazonaws.com/my.registry.com/namespace/alpine

并且低并且看向

123456789.dkr.ecr.eu-west-1.amazonaws.com/my.registry.com/namespace/alpine:latest 
The push refers to repository [123456789.dkr.ecr.eu-west-1.amazonaws.com/my.registry.com/namespace/alpine]
0c8667b5b: Pushed
730460948: Pushed
1.0: digest: sha256:e1f814f3818efea45267ebfb4918088a26a18c size: 7

工作得很好

于 2020-09-16T02:51:18.677 回答
2

有一种非常简单的方法可以将 docker 镜像推送到 ECR:Amazon ECR Docker Credential Helper。只需根据提供的指南安装它,更新~/.docker/config.json如下:

{
    "credsStore": "ecr-login"
}

并且您将能够在没有docker login.

于 2019-10-12T21:50:43.317 回答
2

我遇到了同样的问题,我犯的错误是使用了错误的回购路径

例如:docker push xxxxxxxxxxxxxx.dkr.ecr.us-east-1.amazonaws.com/jenkins:latest

在上面的路径中,这是我犯了错误的地方: In"dkr.ecr.us-east-1.amazonaws.com"而不是"west". 我正在使用 " east"。一旦我纠正了我的错误,我就能够成功推送图像。

于 2017-01-04T13:13:21.770 回答
1

我也在为此苦苦挣扎。请按照以下步骤操作 -

  1. aws configure(使用您的凭据进行配置)
  2. 如果您已经创建了 ECR 存储库,在控制台中您可以找到一个带有“查看推送命令”的按钮。你在那里得到三个命令,并且能够推送。否则,这里有以下三个命令。
  3. aws ecr 获取登录密码--region | docker login --username AWS --password-stdin .dkr.ecr.us-west-2.amazonaws.com
  4. 构建你的 docker 镜像 - docker build -t 。
  5. 码头工人标签:最新的 .dkr.ecr.us-west-2.amazonaws.com/:latest
  6. 搬运工推送 .dkr.ecr.us-west-2.amazonaws.com/:latest

请注意 - 在 .dkr.ecr.us-west-2.amazonaws.com 中,该区域将是您的默认区域。对我来说是 us-west-2,因此也是一样的。

希望这可以节省您的时间。

于 2021-04-07T01:55:22.330 回答
1

我的问题是拥有多个 AWS 凭证;默认和开发。由于我试图部署到 dev 这工作:

$(aws ecr get-login --no-include-email --region eu-west-1 --profile dev | sed 's|https://||')
于 2018-09-14T11:29:11.447 回答
1

对于 Mac OS X

TL;DR 确保您的“auths”密钥与您的凭证存储密钥完全匹配

  • 检查你的码头配置:

cat ~/.docker/config.json

样本结果:

{
    "auths": {
        "https://55511155511.dkr.ecr.us-east-1.amazonaws.com": {}
    },
    "HttpHeaders": {
        "User-Agent": "Docker-Client/19.03.5 (darwin)"
    },
    "credsStore": "osxkeychain"
}

请注意,“auths”值是一个空对象,并且 docker 正在使用凭证存储“osxkeychain”。

  • 打开 Mac 的“Keychain Access”应用,找到名称“Docker Credentials”

在此处输入图像描述

注意Where:字段

  • 确保输入的auths密钥与钥匙串访问~/.docker/config.json中的字段匹配。Where:

如果auths~/.docker/config.json 中的密钥与钥匙串中的字段不匹配Where:,您可能会得到一个Login Succeededfrom ,但当您尝试拉取时docker login...仍然会得到 。ERROR: Service 'web' failed to build: Get https://55511155511.dkr.ecr.us-east-1.amazonaws.com/v2/path/to/image/latest: no basic auth credentials

就我而言,我需要添加https://

原来的

    "auths": {
        "55511155511.dkr.ecr.us-east-1.amazonaws.com": {}
    },

固定的

    "auths": {
        "https://55511155511.dkr.ecr.us-east-1.amazonaws.com": {}
    },
于 2019-12-16T20:39:27.557 回答
1

如果您使用多个配置文件并且您需要登录到一个不是您的默认配置文件,您需要使用以下命令登录:

$(AWS_PROFILE=<YOUR PROFILE> aws ecr get-login --no-include-email --region eu-west-1)
于 2018-11-14T14:13:56.403 回答
1

我在 OSX 上运行时也遇到了这个问题。我看到了 Oliver Salzburg 的回复并检查了我的 ~/.docker/config.json。它内部有多个来自我拥有的不同 AWS 账户的授权凭证。我删除了该文件,并在再次运行 get-login 后它起作用了。

于 2016-08-22T05:39:39.700 回答
1

FWIW,Debian 9,Docker 版本 18.06.1-ce,构建 e68fc7a:

$(aws ecr get-login | sed 's| -e none | |g')

于 2018-11-06T22:33:23.220 回答
1

确保在 中使用正确的区域aws ecr get-login,它必须与创建存储库的区域匹配。

于 2017-08-02T10:50:32.467 回答
0

您必须确保您已使用正确的凭据登录,请参阅官方错误描述并在此处检查

http://docs.aws.amazon.com/AmazonECR/latest/userguide/common-errors-docker.html

链接中描述了修复“无基本身份验证”的问题

于 2016-12-19T07:26:51.237 回答
0

所以我aws-credentials-helper通过下载 repo 并自己编译来安装。我发现我使用了错误的编译命令:make docker而不是make docker TARGET_GOOS=darwin(我在 Mac 上)。结果bin/local/docker-credential-ecr-login最初是不可执行的。

于 2020-06-26T13:26:50.597 回答
0

在我的情况下(可能在所有情况下),这个错误是由于拥有多个 AWS 账户造成的。因此,AWS ECR 没有使用与 aws 账户关联的正确 aws 凭证。

我尝试了这里提到的多种解决方案,但没有成功。它在使用令牌而不是用户名和密码后起作用。我按照这里的说明让它工作了。https://btburnett.com/2017/01/docker-login-for-amazon-aws-ecr-using-windows-powershell.html

于 2018-11-09T15:34:44.657 回答
0

I had to run aws ecr get-login-password due to aws cli deprecating the get-login command.

Also in this version the username is forced to be hard coded as AWS.

Here was the command that worked for aws-cli/2.0.58.

aws ecr get-login-password --region region_y | docker login --username AWS --password-stdin account_x.dkr.ecr.region_y.amazonaws.com

登录成功

于 2020-11-30T22:00:58.963 回答
0

该错误消息来自docker,它不一定与AWS相关,因为我在不使用AWS时遇到了同样的错误......它只是说docker没有获得授权从它碰巧使用的任何身份验证来源继续

就我而言,在测试中我删除了目录 ~/.docker 并得到了那个错误......在我反弹了我的本地 docker 注册表之后,docker push 很好

于 2017-11-29T03:13:25.377 回答
0

如果您出于 CI/CD 目的隔离 AWS 账户并在多个 AWS 账户之间共享一个 ECR 存储库,您可能需要~/.docker/config.json手动更改。

假设您有以下设置:

  1. ECR 归 AWS 账户 ID 所有00000000000000
  2. CI 服务器归 AWS 账户 ID 所有99999999999999

如果您aws ecr get-login --region us-west-2 | bash在 CI 服务器中调用,docker 将在~/.docker/config.json.

{
  "auths": {
    "https://99999999999999.dkr.ecr.us-west-2.amazonaws.com": {
      "auth": "long-token.."
    }
  }
}

但是您要指向 ECR 的帐户,因此您需要更改主机名。

{
  "auths": {
    "https://00000000000000.dkr.ecr.us-west-2.amazonaws.com": {
      "auth": "long-token.."
    }
  }
}

请注意,这种情况取决于您如何形成 IAM 用户/策略以允许 ECR 访问。

于 2016-11-12T05:20:51.620 回答
0

我添加了区域选项,然后一切正常:

aws ecr get-login --no-include-email --region eu-west-3
于 2018-12-22T06:03:37.353 回答
0

我在 Docker 论坛上发布了一个答案。就我而言,问题是centos“docker”不等同于Docker CE,因此失败了:

没有基本身份验证

我只是通过在centos上安装“docker-ce”来修复。

参考:https ://forums.docker.com/t/docker-push-to-ecr-failing-with-no-basic-auth-credentials/17358/30

于 2019-07-13T14:33:01.913 回答
0
aws ecr get-login --region us-west-1 --no-include-email

这个命令给了我正确的登录命令。如果你不使用“--no-include-email”,它会抛出另一个错误。上述命令的输出看起来像这样 docker login -u AWS -p **********************very big******。复制并执行它。现在它将显示“登录成功”。现在您可以将图像推送到 ECR。

确保您的 AMI 规则具有您尝试登录的用户的权限。

于 2017-09-06T21:18:37.743 回答
0

只需运行第一步中返回的任何内容即可解决问题。

于 2017-11-05T06:33:09.973 回答
0

我遇到了同样的问题并用这个命令修复了它。它对我有用,请根据您的帐户更新它。这适用于需要使用 Docker 安装 AWS-CLI 的 Ubuntu 机器

algorithm_name='multi-model-xgboost'

account=$(aws sts get-caller-identity --query Account --output text)

# Get the region defined in the current configuration
region=$(aws configure get region)

aws ecr get-login-password --region ${region} | docker login --username AWS --password-stdin ${account}.dkr.ecr.${region}.amazonaws.com/${algorithm_name}
于 2020-03-26T14:06:18.110 回答
0

在 Windows 系统上,您必须清空以下文件~/.docker/config.json,然后再次运行以下脚本

aws ecr get-login --no-include-email --region ap-southeast-1 --profile [profile_name]
于 2020-12-17T10:10:52.677 回答
0

我们今天也遇到了这个问题,并尝试了这篇文章中提到的所有内容(生成 AWS 凭证除外)。

我们最终通过简单的升级 Docker 解决了这个问题,然后推送成功了。

Docker 1.10.x 遇到了这个问题,Docker 1.11.x 解决了这个问题。

希望这可以帮助

于 2016-07-06T10:46:33.500 回答
-1

确保您在本地运行 Docker 的用户是您最终用于推送映像的用户。对我来说,使用 sudo 运行导致了这个问题。从命令中删除 sudo 解决了它。希望这有助于并节省某人的时间,并且没有人再次犯同样的愚蠢错误。以下是供您参考的输出。

sudo docker push {your-account-id}.dkr.ecr.us-east-1.amazonaws.com/{repository-name}:{tag-name}
The push refers to repository [{your-account-id}.dkr.ecr.us-east-1.amazonaws.com/{repository-name}]
f13afaa342eb: Preparing
d01b75ce3235: Preparing
7eaa58141607: Preparing
519e8c5b2557: Preparing
15d4a3a33fec: Preparing
fdbbf41b1ab8: Waiting
4b88ecda5399: Waiting
e23a8e1e773f: Waiting
6623e2cc11cd: Waiting
no basic auth credentials

在没有 sudo 的情况下运行非常好

docker push {your-account-id}.dkr.ecr.us-east-1.amazonaws.com/{repository-name}:{tag-name}
The push refers to repository [{your-account-id}.dkr.ecr.us-east-1.amazonaws.com/{repository-name}]
f13afaa342eb: Pushed
d01b75ce3235: Pushed
7eaa58141607: Pushed
519e8c5b2557: Pushed
15d4a3a33fec: Pushed
fdbbf41b1ab8: Pushed
4b88ecda5399: Pushed
e23a8e1e773f: Pushed
6623e2cc11cd: Pushed
{tag-name}: digest: sha256:5ceaa5bf7605559582960b6d56a8eece9486ce0950bca9dd63a0dcd38a520bf0 size: 4293
于 2020-06-04T12:17:25.260 回答
-1

AWS depriated get-login 而不是那个,请使用以下命令

aws ecr get-login-password --region <region> | docker login --username AWS --password-stdin <ecr-repo-full-path>

例子

aws ecr get-login-password --region ap-south-1 | docker login --username AWS --password-stdin 607348619222.dkr.ecr.ap-south-1.amazonaws.com
于 2021-04-16T13:03:42.653 回答