无法将 docker 映像推送到 AWS ECR 公共存储库

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

我正在尝试将我的 Nest.js 应用程序推送到公共存储库中的 AWS ECR。我创建了一个 IAM 用户并向其附加了 AdminstratorAccess 策略,然后生成了一个私钥。当我在cmd中输入以下命令时:

aws ecr-public get-login-password --region us-east-1 | docker login --username 
AWS --password-stdin public.ecr.aws/.....

我收到以下错误:

Error saving credentials: error storing credentials - err: exit status 1, out: `error storing credentials - err: exit status 1, out: `The stub received bad data.``

我安装了 AWS CLI。

我尝试删除

.aws
中的配置和凭据文件,并查看了多个QnA论坛,但问题仍然存在。

编辑:我找到了解决方案。所以显然在 Windows 10 中你必须在 C:\Users\hp.docker 中配置 congid.json 文件并删除:

"credStore":"desktop"
。现在我已经成功登录并将图像推送到公共存储库中。

amazon-web-services docker command-line-interface amazon-ecr
1个回答
0
投票

试试这些......

验证 AWS CLI 配置:仔细检查您的 AWS CLI 是否已使用正确的凭证和区域正确配置。您可以使用 aws configure 命令来设置您的凭证和区域。

IAM 权限:确保您创建的 IAM 用户具有访问 ECR 所需的权限。即使您附加了 AdministratorAccess 策略,最好还是仔细检查一下是否存在影响 ECR 访问的显式拒绝策略。

检查 Docker 配置: 确保 Docker 已正确配置并运行。确保您的计算机上已安装并运行 Docker Desktop 或 Docker Engine。

更新 AWS CLI: 确保您使用的是最新版本的 AWS CLI。您可以使用 pip 包管理器更新它:pip install --upgrade awscli。

重试命令:有时,网络问题或临时故障可能会导致 docker 登录命令失败。几分钟后尝试再次运行该命令。调试:您可以通过将 AWS_DEBUG 环境变量设置为 1 来启用 AWS CLI 的调试输出。这可能会提供有关该问题的更多信息。

例如:在 Windows 上设置 AWS_DEBUG=1 或在基于 Unix 的系统上导出 AWS_DEBUG=1。 检查安全软件:如果您使用任何安全软件或防火墙,它们可能会干扰连接。暂时禁用它们或为 Docker 和 AWS CLI 添加例外可以帮助诊断问题。

咨询 AWS 支持: 如果上述步骤均无法解决问题,请考虑联系 AWS 支持以获得进一步帮助。他们可以根据您的帐户配置和环境提供具体指导。

© www.soinside.com 2019 - 2024. All rights reserved.