【问题标题】:docker-compose - how to provide credentials or API key in order to pull image from private repository?docker-compose - 如何提供凭据或 API 密钥以便从私有存储库中提取图像?
【发布时间】:2021-01-21 01:43:39
【问题描述】:

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

image: example-registry.com:4000/test

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

谢谢

【问题讨论】:

    标签: docker docker-compose docker-registry docker-repository


    【解决方案1】:

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

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

    这个文件里可以有很多东西,here is the doc

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

    • 在此处创建专用令牌(您不应多次使用令牌)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 命令没有太大区别,尤其是如果您有一些脚本来执行此操作。

    【讨论】:

    • docker-compose 在 Windows 上使用 $HOME/.docker/config.json (Linux, OSX) 或 %USERPROFILE%/.docker/config.json ,除非使用身份验证插件,这超出了我的经验。要为 .docker/config.json 使用不同的父目录,请更改 HOME 环境变量(Linux、OSX)或 %USERPROFILE% 变量。似乎没有其他方法可以指定不同的 config.json 文件。
    猜你喜欢
    • 1970-01-01
    • 2021-12-10
    • 1970-01-01
    • 2020-04-27
    • 2021-01-05
    • 2015-09-03
    • 1970-01-01
    • 2019-07-19
    • 2022-06-24
    相关资源
    最近更新 更多