docker watchtower - 从私人 docker 存储库拉取访问被拒绝

docker watchtower - pull access denied from private docker repository

我一直在尝试设置自动 docker 拉取环境。
这是我的命令。

-启动应用程序容器

$docker run -d index.docker.io/<username>/<reponame>

-用config.json

开始瞭望塔

$docker run -d --name watchtower -v /var/run/docker.sock:/var/run/docker.sock: -v /$HOME/.docker/config.json:/$HOME/config.json: containrrr/watchtower --run-once

-/$HOME/config.json

{
    "auths": {
        "index.docker.io/<username>/<reponame>": {
            "auth": "<token>"
        }
    }
}

-这是瞭望塔的回应

Error response from daemon: pull access denied for <username>/<reponame> repository does not exist or may require 'docker login'

有什么建议吗?

我必须非常仔细地阅读瞭望塔文档。这些链接可能会有所帮助。
https://containrrr.dev/watchtower/usage-overview/
https://containrrr.dev/watchtower/private-registries/

然后回答问题,这是我破解它的方法。

  • in docker-compose 或 docker 运行 命令参数,config.json,你必须显式完整的存储库前缀和标签(例如:index.docker.io//:,也许标签不是强制性的。)。

  • 并且对于 config.json 参考,请改为 /<path>/config.json:/config.json:

  • 如果您将 docker 身份验证令牌放入 config.json,您将看到格式错误。使用 echo -n '<username:<token>' | base64 生成令牌并将其放入 config.json

    中的 auth 值