无法登录ghcr.io Docker镜像仓库报503服务不可用错误是什么原因?
问题原因及解决方法
伪造凭证可登录错误域名的原因
Docker客户端执行docker login的校验逻辑为:首先请求目标镜像仓库的/v2/接口,若接口未返回401未授权响应,会直接判定登录成功,不会校验提交的用户名和密码。
你输入的错误域名gchr.io当前的服务配置恰好对/v2/接口返回200状态码,未开启认证校验,因此无论输入什么伪造凭证都会提示登录成功,属于错误域名的服务配置问题,和本地操作无关。
ghcr.io返回503无法登录的原因
503 Service Unavailable属于服务不可用错误,出现该报错说明请求还未走到账户凭证校验的步骤,就已经无法正常访问ghcr.io的服务,和你输入的PAT、密码是否正确无关。
你可以按以下顺序排查问题:
- 确认ghcr.io服务本身是否处于正常运行状态
- 检查Docker daemon的代理配置:Docker的网络代理和PowerShell系统层的代理为独立配置,若你的网络需要代理才能访问境外服务,需要单独给Docker daemon配置对应代理规则,确保ghcr.io的请求走可用的代理节点
- 检查本地hosts文件是否存在ghcr.io的错误指向记录,DNS解析是否被污染,可尝试刷新本地DNS缓存后重试
- 在PowerShell中执行
Invoke-WebRequest -Uri https://ghcr.io/v2/测试网络连通性,若返回同样的503错误,说明是当前网络到ghcr.io的链路故障,切换网络环境后重试即可
等可以正常访问ghcr.io的/v2/接口后,若仍提示认证错误,再检查你使用的PAT是否勾选了read:packages、write:packages权限,且账户状态正常。
内容的提问来源于stack exchange,提问作者Tony Arntsen
相关产品推荐
相关产品推荐

