Amazon web services docker swarm和aws ecr使用api密钥进行身份验证

Amazon web services docker swarm和aws ecr使用api密钥进行身份验证,amazon-web-services,authentication,docker,swarm,Amazon Web Services,Authentication,Docker,Swarm,将堆栈部署到运行在AWS EC2中的docker swarm群集时,我无法从AWS ECR中提取docker映像 如果我尝试使用ssh连接到任何节点,并手动进行身份验证和手动提取映像,则不会出现任何问题 这项工作: root@manager1 ~ # `aws ecr get-login --no-include-email --region us-west-2 ` Login Succeeded root@manager1 ~ # docker pull *****.dkr.ecr.us-we

将堆栈部署到运行在AWS EC2中的docker swarm群集时,我无法从AWS ECR中提取docker映像

如果我尝试使用ssh连接到任何节点,并手动进行身份验证和手动提取映像,则不会出现任何问题

这项工作:

root@manager1 ~ # `aws ecr get-login --no-include-email --region us-west-2 `
Login Succeeded
root@manager1 ~ # docker pull *****.dkr.ecr.us-west-2.amazonaws.com/myapp:latest
但是,如果我尝试部署堆栈或服务:

docker stack deploy --compose-file docker-compose.yml myapp
在已通过身份验证的节点以及所有其他manager/worker节点上找不到该映像

docker服务ps myapp出错:

"No such image: *****.dkr.ecr.us-west-2.amazonaws.com/myapp:latest"
操作系统:RHEL 7.3 Docker版本:Docker版本1.13.1-cs5,构建21c42d8

有人能解决这个问题吗

试试这个命令

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

我同意上面的观点。我认为@Nerses缺少注册表身份验证所需的“-with registry auth”参数,但我认为这仅适用于Docker 17.03或更高版本。可能是17.05,不确定。但Docker 1.13却没有。1@MohanShanmugam,谢谢你!这对我来说不起作用,但我尝试了以下方法,这确实有效
aws ecr get login
&&docker stack deploy——编写文件docker-compose.yml s——使用注册表身份验证请注意,我尝试不使用user/pass,而是使用aws密钥/secret。出于某种原因,我无法使用docker登录方法,即使我使用的是与~/.aws/credentials中的密钥关联的同一个user/pass。是的,我为docker存储库提供了特定的权限。对于ECS,您所做的是正确的。在访问ecr存储库身份验证时,您不能使用aws访问密钥和密钥。将尝试其他方法并更新您。