![](/img/trans.png)
[英]Pull images from AWS ECR on AWS EC2 without using docker login but using EC2 Instance role and ECR repository permissions
[英]How to get docker images from privacy AWS ECR repository in Vagrant
我发现您可以使用Vagrant和Docker作为提供程序,我认为这很酷。 官方文件
该文档显示了使用私有存储库进行设置的部分。 电子邮件,用户名,密码和auth_server
我想知道Vagrant是否支持aws ecr get-login
从AWS Registry获得docker镜像?
编辑:
我尝试了这个:
Vagrant.configure("2") do |config|
config.vm.define "mydocker" do |a|
a.vm.provider "docker" do |d|
d.image = "my-account.dkr.ecr.us-east-1.amazonaws.com/myimage:latest"
#Private registry
d.email = "my@emai.com"
d.username = "my-user"
d.password = "my-pass"
d.auth_server = "my-account.dkr.ecr.us-east-1.amazonaws.com"
#Custom Docker Host
d.vagrant_machine = "dockerhost"
d.vagrant_vagrantfile = "./dockerHost/Vagrantfile"
end
end
end
这是输出错误:(Vagrant尝试使用参数进行登录)
Command: "docker" "login" "-u" "my-user" "-p" "my-pass" "my-account.dkr.ecr.us-east-1.amazonaws.com"
Stderr: Error response from daemon: login attempt to https://my-account.dkr.ecr.us-east-1.amazonaws.com/v2/ failed with status: 401 Unauthorized
谢谢。
我找到了使用get-authorization-token
我不知道这是最好的方法,但是目前它是可行的。
get-authorization-token
命令将创建一个有效的令牌,持续12小时。 (我认为可以更改),您可以看到官方文档
如果您使用的是MAC 更多信息 (不能与zsh控制台一起使用,请使用bash)
aws ecr get-authorization-token --output text --query authorizationData[].authorizationToken | base64 -D | cut -d: -f2
它将打印解码密码,然后在Vagrantfile中:
...
#Private registry
d.email = ""
d.username = "AWS"
d.password = "The-decoded-password"
d.auth_server = "my-account.dkr.ecr.us-east-1.amazonaws.com"
...
而且有效。
也许有必要生成一个有效期超过12小时的密码= 0)
我将等待评论或改进。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.