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