如何分享私有GitHub Packages中的Docker镜像?解决拉取认证问题
解决GitHub私有Docker镜像分享的认证问题
针对你遇到的Head unauthorized错误,本质是朋友没有访问你私有GitHub Packages的权限,这里提供三种实用解决思路:
方法一:给朋友生成GitHub个人访问令牌(PAT)让他本地认证
这是私有包拉取的标准方式:
- 让朋友登录自己的GitHub账号,进入「Settings」→「Developer settings」→「Personal access tokens」→「Tokens (classic)」,创建新令牌
- 必须勾选
read:packages权限,其他非必要权限别选,生成后复制令牌(仅能查看一次,务必保存) - 朋友在本地终端执行:
输入自己的GitHub用户名,把刚才生成的PAT当作密码输入,登录成功后即可正常拉取镜像docker login ghcr.io
方法二:直接导出镜像文件分享(无需GitHub权限)
如果不想让朋友接触你的GitHub权限,用离线方式:
- 你在本地把镜像导出为tar包:
docker save -o my-image.tar ghcr.io/your-username/your-image:tag - 把这个tar文件发给朋友,他在本地执行加载命令:
加载完成后就能直接运行镜像,无需再拉取docker load -i my-image.tar
方法三:添加朋友为仓库协作者(适合长期共享)
如果你们需要长期协作共享,直接给朋友仓库访问权限:
- 打开你的GitHub仓库页面,进入「Settings」→「Collaborators and teams」,点击「Add people」
- 输入朋友的GitHub用户名,给他「Read」权限,邀请他接受
- 朋友接受后,用自己的GitHub账号生成带
read:packages权限的PAT,再执行docker login ghcr.io,就能拉取镜像了
内容的提问来源于stack exchange,提问作者James
相关产品推荐
相关产品推荐

