我想使用托管在 ECR 上的 docker 镜像,并且想使用 cloudformation 模板自动执行拉取操作。
我附加了具有 ECR 完全访问权限的 IAM 角色到 ec2 实例,但它不起作用。
我正在做docker pull 1234567897.dkr.ecr.us-west-2.amazonaws.com/repo:tag
,但收到错误Error response from daemon: Get https://1234567897.dkr.ecr.us-west-2.amazonaws.com/repo:tag/manifests/latest: no basic auth credentials
答案1
使用 ECR、EC2 和 docker,您仍然需要执行docker login
。
在用户数据运行中
aws ecr get-login --no-include-email > login.sh
bash login.sh
那么你应该可以运行
docker pull ecr_registry/repo:tag
https://docs.aws.amazon.com/AmazonECR/latest/userguide/ECR_AWSCLI.html
答案2
如果你正在运行运行 Windows 的 EC2 实例,那么你需要运行 powershell 等效命令,aws ecr get-login
其为
Invoke-Expression –Command (Get-ECRLoginCommand –Region region).Command
答案3
接受的答案是正确的,我只需添加一行示例:
跑步:
$(aws ecr get-login --no-include-email)
进而:
docker pull <ecr_host>/<repo>:<tag>