1

我已经部署了瞭望塔,它会自动更新Docker Swarm中正在运行的 Docker 容器。

我在两台AWS EC2服务器上运行这个 Docker Swarm,并使用 AWS ECR 作为 Docker 注册表。

为了避免aws ecr get-login我使用了Amazon ECR Docker Credential Helper,它会在 docker push/docker pull 上自动获取 Amazon ECR 的凭证,并且无需在 12 小时内登录 ech。

问题是瞭望塔抛出如下错误:

time="2019-03-12T03:41:10Z" level=info msg="Unable to update container /crmproxy.1.wop3c1u2qktbkab8rukrlrgr6, err='来自守护进程的错误响应: pull access denied for 00000000000.dkr..amazonaws.com /crm,存储库不存在或可能需要“docker login”。继续下一步。”

我确信这与登录 ECR 无关。我已使用 docker -compose.yml文件将凭据正确链接到 WATCHTOWER 容器中。

这是 docker-compose.yml 文件上的瞭望塔配置。

  watchtower:
    image: v2tec/watchtower
    volumes:
        - /var/run/docker.sock:/var/run/docker.sock
        - ~/.docker/config.json:/config.json
    command: --interval 30

在我对这个问题的研究中,我看到其他人和我有同样的问题,并且有人自己解决了这个问题,但我不明白。

这就是我发现的:尚不清楚的解决方案

我不完全知道这个答案是否正确。但他说:

问题是我以root身份安装了docker。现在使用 Amazon Linux AMI 的 ec2-user 安装并正常工作

请帮助我避免我面临的这个问题。我试了很多次。任何帮助都会对我有利。

4

1 回答 1

0

您的图片网址中还有一个点。这可能是您的问题的原因吗?

  00000000000.dkr..amazonaws.com/crm
                  ^

此外,您可以将 ec2-user 添加到 docker 组中,以使其也执行 docker 命令:sudo usermod -aG docker ec2-user. 无需重新安装。

于 2019-08-07T11:23:30.873 回答