1

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

- 启动应用程序容器

$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'

有什么建议么?

4

1 回答 1

0

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

并回答这个问题,这就是我破解它的方法。

  • 在 docker-compose 或 docker run 命令参数 config.json 中,您必须明确完整的存储库前缀和标记(例如:index.docker.io/<username>/<repository>:<tag>,也许标记不是强制性的。 )。

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

  • 如果您将 docker auth 令牌放入 config.json,您会看到格式错误。用于echo -n '<username:<token>' | base64生成token并将其放入config.json中的auth值中

于 2022-02-27T02:50:02.993 回答