从 ECR 进行 docker-swarm 更新

Make docker-swarm update from ECR

如何让 docker-swarm 连接到 ECR 并用最新的镜像更新当前容器。如果是,请分享一篇文章,我可以从哪里开始调查。

在您用来控制 docker swarm 的任何节点上,使用以下命令登录 ECR 并拉取最新映像:eval $(aws ecr get-login --no-include-email --region <whatever-your-region-is>)

这将登录到您的 ECR 注册表。请注意,您需要将您的 AWS 访问密钥和秘密密钥添加到此节点才能正常工作;如果您还没有这样做,请使用 aws configure 命令。

现在,当您 运行 docker stack deploy 启动您的容器时,将 --with-registry-auth 标志添加到命令中:此 "spreads" 登录到所有集群中的节点,以便它们都可以下载图像。

基本上你需要两件事

  1. 登录AWS ECR(令牌有效期仅12小时)

    eval $(aws ecr get-login --no-include-email --region 区域名称)

  2. 更新您的 docker 服务

    docker 服务更新-d -q --with-registry-auth 服务名称

注意: 确保在您的服务定义中 docker 图像具有最新的后缀。例如docker_image_name:latest

This article 准确描述了如何自动登录 AWS ECR 并更新 docker 服务。

http://issamben.com/docker-swarm-ecr-auto-login/