docker-compose - 如何提供凭据或 API 密钥以便从私有存储库中提取图像?

如何解决docker-compose - 如何提供凭据或 API 密钥以便从私有存储库中提取图像?

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

image: example-registry.com:4000/test

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

谢谢

解决方法

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 命令并没有太大区别,尤其是在您编写一些脚本来执行此操作的情况下。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?