首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何为同一个停靠器注册表使用多个auths/ logins

如何为同一个停靠器注册表使用多个auths/ logins
EN

Stack Overflow用户
提问于 2018-05-04 15:00:55
回答 4查看 29.6K关注 0票数 37

我在使用最新的gitlab和综合码头注册中心。对于每个项目,我创建一个单独的部署令牌。在我要部署映像的主机上,输入docker login https://registry.example.com/project1,输入deploy并获得成功。把图像拉出来效果很好。

在同一台主机上,我需要从同一个注册表中部署另一个映像。所以我做了docker login https://registry.example.com/project2,部署令牌(与令牌1不同,因为每个项目都有自己的部署令牌)并获得成功。

但是,在.docker/config.json中,我可以看到docker只存储域,而不是完整的url,因此用新的标记替换了旧的auth令牌。所以我现在只能拉出图像2,而不再是图像1了。

这是码头的窃听器吗?如何为同一个注册表使用多个auth/部署令牌?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2019-04-11 14:46:34

可以使用Docker客户端的-配置选项将多个凭据存储到不同的路径中:

代码语言:javascript
复制
docker --config ~/.project1 login registry.example.com -u <username> -p <deploy_token>
docker --config ~/.project2 login registry.example.com -u <username> -p <deploy_token> 

然后可以通过选择凭据来调用Docker命令:

代码语言:javascript
复制
docker --config ~/.project1 pull registry.example.com/project1
docker --config ~/.project2 pull registry.example.com/project2

希望这能有所帮助。

票数 61
EN

Stack Overflow用户

发布于 2018-07-31 09:58:15

目前是不可能的。见https://github.com/moby/moby/issues/37569

但是,解决方法之一是将凭据存储在依赖于CWD的目录中,以便为您服务:

代码语言:javascript
复制
export DOCKER_CONFIG=.docker
cd your-docker-project
docker login registry.example.com
docker-compose pull

cd ../other project
# repeat steps here

这样,通过更改目录,就可以更改凭据。无论如何,您必须使用cd来使用git和docker组成。

票数 11
EN

Stack Overflow用户

发布于 2019-06-25 20:15:59

我也遇到了同样的问题,现在我的解决办法是使用专用的用户/令牌:

  1. 创建一个新用户
  2. 使用角色Reporter将用户添加到您需要的所有项目中
  3. 创建一个具有作用域Personal Access Token的新read_registry

现在您可以使用新创建的令牌登录并拉动:

docker login https://registry.example.com -u REPORTER_USER -p PERSONAL_ACCESS_TOKEN

这应该可以做到这一点,您也可以用现有的用户创建令牌。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50177884

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档