无法通过AWS CLI登录Docker,推送AWS ECR镜像时遇登录错误
解决AWS ECR公共仓库Docker登录错误的方案
错误场景
执行以下登录命令时出现异常:
aws ecr-public get-login-password --region us-east-1 | docker login --username AWS --password-stdin public.ecr.aws/xxxxxx
错误信息:
failed to get console mode for stdin: The handle is invalid.
Error saving credentials: error storing credentials - err: exit status 1, out:error storing credentials - err: exit status 1, out:The stub received bad data.
修复步骤
1. 调整Docker凭据管理器设置
该错误多与Windows系统下Docker的凭据存储配置冲突有关:
- 打开Docker Desktop设置,进入Resources > Credential Helper
- 取消勾选「Use Windows Credential Manager to store Docker credentials」选项
- 重启Docker Desktop后重新执行登录命令
2. 强制Docker使用文件存储凭据
若上述方法无效,可修改Docker配置强制使用文件存储:
- 在用户根目录下创建或编辑
.docker/config.json文件,添加内容:
{ "credsStore": "" }
- 保存文件后重启Docker,再重试登录命令
3. 拆分命令避免管道stdin问题
跳过管道命令,分两步执行登录操作:
- Windows PowerShell环境:
$password = aws ecr-public get-login-password --region us-east-1 docker login --username AWS --password $password public.ecr.aws/xxxxxx
- Windows CMD环境:
aws ecr-public get-login-password --region us-east-1 > password.txt docker login --username AWS --password-stdin public.ecr.aws/xxxxxx < password.txt del password.txt
4. 检查版本兼容性
- 执行
aws --version查看AWS CLI版本,若过时则更新(Windows可通过aws update操作) - 确保Docker Desktop为最新稳定版,更新后重试登录
内容的提问来源于stack exchange,提问作者Ishaan Bhela
相关产品推荐
相关产品推荐

