我正在尝试(但未通过)对Docker进行AWS ECR身份验证。我已经通过AWS CLI aws ecr get-login
命令生成了我的AWS令牌,并提供了以下内容:
docker login -u AWS -p <token> --no-include-email https://***.dkr.ecr.eu-central-1.amazonaws.com
。
但是,当我执行此命令时,我得到unknown flag : --no-include-email
。
我已经阅读了很多有关该主题的文章,似乎都说这是一个版本问题,因为引入了--no-include-email
标志来代替不推荐使用的-e none
标志。我正在运行以下版本:
Docker version 18.03.0-ce, build 0520e24302
,
AWS CLI 1.16.88
,
Python 3.6.0
,以及
Windows 7 x64
。
我什至通过pip
安装AWS CLI并使用pip install --user --upgrade awscli
检查升级版本,甚至仔细检查了我最初的AWS CLI安装。
我最初遇到的错误是docker login unknown shorthand flag: 'e'。
一切都是最新的。
在这里可能值得注意的是,我正在通过标准credentials file
[default]
aws_access_key_id = ***
aws_secret_access_key = ***
我想念什么?
答案 0 :(得分:2)
这对我适用于AWS CLI版本2:
docker login --username AWS -p $(aws ecr get-login-password) <aws-ecr-url>
答案 1 :(得分:1)
--no-include-email
标志是一个AWS CLI标志,而不是docker标志。要使用它,请将其添加到您的get-login
通话中:
$ aws ecr get-login --no-include-email
docker login -u AWS -p ey...V9 https://123456789.dkr.ecr.us-east-1.amazonaws.com
尝试比较有无--no-include-email
标志。您会注意到,使用--no-include-email
会忽略输出的-e none
部分。您可以复制/粘贴给定命令以登录docker。要保存副本/粘贴,请使用以下命令登录:
eval "$(aws ecr get-login --no-include-email)"