我在使用最新的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/部署令牌?
发布于 2019-04-11 14:46:34
可以使用Docker客户端的-配置选项将多个凭据存储到不同的路径中:
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命令:
docker --config ~/.project1 pull registry.example.com/project1
docker --config ~/.project2 pull registry.example.com/project2希望这能有所帮助。
发布于 2018-07-31 09:58:15
目前是不可能的。见https://github.com/moby/moby/issues/37569。
但是,解决方法之一是将凭据存储在依赖于CWD的目录中,以便为您服务:
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组成。
发布于 2019-06-25 20:15:59
我也遇到了同样的问题,现在我的解决办法是使用专用的用户/令牌:
Reporter将用户添加到您需要的所有项目中Personal Access Token的新read_registry现在您可以使用新创建的令牌登录并拉动:
docker login https://registry.example.com -u REPORTER_USER -p PERSONAL_ACCESS_TOKEN
这应该可以做到这一点,您也可以用现有的用户创建令牌。
https://stackoverflow.com/questions/50177884
复制相似问题