You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows11下本地推送Docker镜像至AWS ECR报错求助

Windows 11推送Docker镜像到AWS ECR的错误解决

问题描述

执行镜像推送命令时,终端抛出以下错误:

failed to get console mode for stdin: The handle is invalid.
Error saving credentials: error storing credentials - err: exit status 1, out: not implemented

复现步骤

  • 安装Docker Desktop
  • 本地构建Docker镜像
  • 在AWS ECR创建目标仓库
  • 执行aws configure完成账号配置
  • 运行推送命令:
    aws ecr-public get-login-password --region us-east-1 | docker login --username AWS --password-stdin public.ecr.aws/xxxxxxx
    

解决方案

1. 更换终端执行命令

放弃使用CMD或第三方终端,改用以下两种终端之一:

  • Docker Desktop自带的Docker CLI终端:打开Docker Desktop后点击右上角终端图标,直接在该环境下执行命令
  • 管理员模式的PowerShell:右键开始菜单选择「Windows PowerShell(管理员)」,再运行相关命令

2. 避免管道传递密码,改用变量中转

在PowerShell中执行以下命令替代原管道命令,绕开stdin控制台模式问题:

$ECR_PASSWORD = aws ecr-public get-login-password --region us-east-1
docker login --username AWS --password $ECR_PASSWORD public.ecr.aws/xxxxxxx

3. 修改AWS凭证存储方式

编辑用户目录下的.aws\config文件(路径示例:C:\Users\你的用户名\.aws\config),添加以下配置强制AWS CLI使用文件存储凭证,避免Windows凭证管理器的兼容性问题:

[default]
credentials_file = C:\Users\你的用户名\.aws\credentials
cli_follow_urlparam = false

4. 更新Docker和AWS CLI版本

  • 打开Docker Desktop,进入设置页面检查并更新到最新版本
  • 执行以下命令更新AWS CLI到最新版:
    msiexec.exe /i https://awscli.amazonaws.com/AWSCLIV2.msi
    

5. 验证AWS权限

执行以下命令确认当前AWS账号能正常访问,且具备ECR操作权限:

aws sts get-caller-identity

如果返回账号ID、用户ARN等信息,说明账号配置正常;若报错,需检查aws configure输入的access key和secret key是否正确,以及账号是否被授予ecr:GetAuthorizationToken、ecr:InitiateLayerUpload等必要权限。

内容的提问来源于stack exchange,提问作者CodeOfLife

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 18:57:06