在过去的两天里,我无法从 GitHub 容器注册表 (GHCR) 中提取任何映像。公共图像和私有图像都会出现此问题。我尝试过使用 CMD 和 Windows 终端,但没有成功。不过,我可以正常从 Docker Hub 拉取镜像。
我使用的命令是这样的:
docker pull ghcr.io/someorg/someimage:sometag
我得到的错误是这样的:
来自守护进程的错误响应:头“https://ghcr.io/v2/someorg/someimage/manifests/sometag”:拒绝:拒绝
只说“拒绝”,没有解释原因。经过大量搜索,我只找到了 GitHub 上的一个问题,上面说这是一个平台问题,已经解决了。
由于您尝试提取的图像是公开的,并且您收到该错误,因此可以安全地假设您使用不再存在的访问令牌登录(因为您可能已删除它或它已过期)。
鉴于此,您必须使用以下命令删除
ghcr.io
的登录凭据:
docker logout ghcr.io
然后使用现有访问令牌再次登录或根本不登录。
然后
pull
命令应该可以工作。
我在拉取私有包时遇到了类似的错误:
docker pull ghcr.io/user/image-name:latest
Error response from daemon: Head "https://ghcr.io/v2/user/image-name/manifests/latest": unauthorized
docker login ghcr.io -u username -p accesstoken
将用户名替换为您的 github 用户名,密码(GitHub 个人访问令牌)通过此处 -> 生成新令牌 -> 经典获取。并选择存储库和包权限:
现在
docker pull
将会成功。