[英]Unable to login to private Docker registry using Singularity on cluster
我一直在尝试登录我大学 GitLab 实例的私有 Docker 注册表。 由于 Docker 未安装在我正在处理的集群上,因此我使用的是 Singularity。
尝试登录时遇到错误:
while login to docker://git.tu-berlin.de:5000: Get "https://git.tu-berlin.de:5000/v2/": Forbidden
现在,当我在 Firefox 中使用该 URL 时,我得到:
但我也从来没有被要求输入密码,所以我想很明显我是未经授权的。 我不确定这是否相关,但我的~.bashrc
有两个代理定义,因为计算节点无法直接访问互联网:
export https_proxy=http://[nodeurl]:port/
export http_proxy=http://[nodeurl]:port/
当然,其中nodeurl
和port
被实际值替换。 这可能是问题吗? 我很困惑,因为在我的本地笔记本电脑上输入 URL https://git.tu-berlin.de:5000/v2/
未经授权,但我可以通过 Singularity 登录到私有注册表并在之前未登录时提取图像码头工人。
使用 docker 凭证(无论是私有注册表还是公共注册表)的最简单方法是使用环境变量SINGULARITY_DOCKER_USERNAME
和SINGULARITY_DOCKER_PASSWORD
。 如果设置,Singularity 会尝试将这些用于所有docker 注册表交互,因此仅在需要时设置它们通常很有用。 文档中提供了其他信息: 通过环境变量进行身份验证
代理问题有点棘手。 Singularity 似乎并不直接处理这些,而是依靠操作系统来完成它的工作。 尝试在本地使用 env 变量(或文档中也列出的交互方法)以确保它正常工作,然后在集群中尝试一下。 如果它仍然在那里玩得不好,你可能需要有点创意或联系管理员寻求指导。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.