2017-08-17 65 views
1

将堆栈部署到我在AWS EC2中运行的Docker群集时,我无法从AWS ECR中拖动Docker图像。使用api密钥的docker swarm和aws ecr认证

如果我尝试ssh到任何一个节点,并手动验证和手动拉的图像,没有任何问题

这工作:

[email protected] ~ # `aws ecr get-login --no-include-email --region us-west-2 ` 
Login Succeeded 
[email protected] ~ # docker pull *****.dkr.ecr.us-west-2.amazonaws.com/myapp:latest 

但是,如果我尝试部署一个堆栈或服务:

docker stack deploy --compose-file docker-compose.yml myapp 

图像不能被发现,我已经验证,以及所有其他的经理/工人节点上的节点上。从搬运工服务PS MYAPP

错误:

"No such image: *****.dkr.ecr.us-west-2.amazonaws.com/myapp:latest" 

OS:RHEL 7.3 泊坞版本:多克尔版本1.13.1-CS5,建立21c42d8

任何人有这个问题的解决方案?

回答

2

试试这个命令

docker login -u Username -p password *****.dkr.ecr.us-west-2.amazonaws.com && docker stack deploy --compose-file docker-compose.yml myapp --with-registry-auth 
+0

我上面同意。我认为@Nerses缺少注册表验证所需的“--with-registry-auth”参数。 – vivekyad4v

+0

但我认为这只适用于Docker 17.03或更高版本。可能是17.05,不确定。但它不在Docker 1.13.1 –

+0

@Mohan Shanmugam,谢谢!这对我来说不起作用,但我已经尝试了以下实际工作。 'aws ecr get-login' && docker stack deploy --compose-file docker-compose.yml s --with-registry-auth请注意,我正尝试不使用user/pass来代替,我想喜欢使用AWS密钥/秘密。出于某种原因,即使我使用与我在〜/ .aws/credentials中拥有的密钥关联的相同用户/密码,我也无法使用docker登录方法。 – Nerses