我正在尝试将一个 docker 映像推送到我的 AWS ECR,但我在登录期间收到此错误
我使用的命令:
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.
将管道命令拆分为单独的命令:
首先运行
aws ecr-public get-login-password --region us-east-1
并查看它输出的密码。
然后运行第二个命令,但将密码作为参数传递给它:
docker login --username AWS --password <password-output-from-previous-command> public.ecr.aws/xxxxxx
这将帮助您隔离遇到的错误,并可能完全克服它。
如果可以,我强烈建议您使用 AWS ECR Credentials Helper。
您的命令似乎是正确的,但是您可以帮助我了解您使用的是哪个操作系统吗?您正在使用的 AWS CLI 版本是什么,以便隔离问题。
命令
aws ecr get-login-password --region region | docker login --username AWS --password-stdin aws_account_id.dkr.ecr.region.amazonaws.com
这里是官方帮助白皮书 - https://docs.aws.amazon.com/AmazonECR/latest/userguide/docker-push-ecr-image.html