1

我有私人仓库,我在 docker 之外上传图像。

image: example-registry.com:4000/test

我在我的 docker-compose 文件中定义了它。我如何提供凭据或 API 密钥以便从该存储库中提取?是否可以在不执行“docker login”命令的情况下执行此操作,或者需要始终在 docker-compose 命令之前执行这些命令?我有 API 密钥,例如用于从 PowerShell 或任何其他工具执行 REST API。我可以以某种方式使用它来不断避免“docker login”命令吗?

谢谢

4

1 回答 1

1

docker login为您创建或更新~/.docker/config.json文件。只有登录部分,它看起来像

{
    "auths": {
        "https://index.docker.io/v1/": {
            "auth": "REDACTED"
        }
    }
}

这个文件里可以有很多东西,这里是文档

因此,要回答您的问题,您可以通过分发此文件来避免登录命令。就像是:

  • 在https://hub.docker.com/settings/security中创建一个专用令牌(您不应该多次使用令牌)
  • 如果确实存在,则将当前配置移至其他位置mv ~/.docker/config.json /tmp
  • 执行docker login -u YOUR-ACCOUNT,使用令牌作为密码
  • 复制生成~/.docker/config.json的,然后您可以将其分发到您的服务器。这个文件和你的密码一样保密,不要公开!
  • 移回您当前的配置mv /tmp/config.json ~/.docker/

将文件作为您分发的秘密与输入命令没有太大区别docker login,特别是如果您有一些脚本来执行此操作。

于 2021-02-09T10:56:10.900 回答