跳转至内容
  • 版块
  • 最新
  • 标签
  • 热门
  • 世界
  • 用户
  • 群组
皮肤
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • 默认(不使用皮肤)
  • 不使用皮肤
折叠

乐达

  1. 主页
  2. 软件工程
  3. Docker
  4. 国内docker login ghcr.io的正确方式

国内docker login ghcr.io的正确方式

已定时 已固定 已锁定 已移动 Docker
2 帖子 1 发布者 2 浏览 1 关注中
  • 从旧到新
  • 从新到旧
  • 最多赞同
回复
  • 在新帖中回复
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • Z 离线
    Z 离线
    zhongfangxiong
    写于 最后由 编辑
    #1

    完全正常。你遇到的是 GHCR(GitHub Container Registry)特有的限制,和 GitHub 登录方式不同:

    ❗ 你不能使用 GitHub 密码登录 ghcr.io

    ❗ 你不能使用 GitHub 的 Web 登录状态登录 ghcr.io

    ❗ 你不能使用 GitHub App Token 登录 ghcr.io

    ❗ 你不能使用 GitHub SSH Key 登录 ghcr.io

    GHCR 必须使用:

    ⭐ Classic Personal Access Token(经典 PAT)+ read:packages 权限

    否则永远拒绝。


    💥 你现在遇到的 login 被拒绝 = 使用了错误的凭证

    导致 GHCR 一直停住/拒绝/报错。

    我一步一步帮你解决。


    ✔ 第一步:你必须创建一个 GHCR 允许使用的 Token(非常关键)

    在 GitHub 网站打开这个页面:

    👉 https://github.com/settings/tokens

    点击右上角:

    Generate new token (classic)
    

    ⚠️ 不是 Fine-grained token
    ⚠️ 不是 GitHub App Token
    ⚠️ 一定要 Classic Token

    创建时勾选:

    read:packages   ✔
    

    (只要这一个权限,别的都不要)

    生成后会看到一个 token,如:

    ghp_abcdEfgh1234567890xxxxYYYYZZZZ
    

    要保存好,GitHub 之后不会再显示。


    ✔ 第二步:使用正确方式登录 GHCR

    在香港机器执行:

    docker login ghcr.io
    

    当提示 Username 时:

    👉 填你的 GitHub 用户名
    (例如:xiaoming)

    提示 Password 时:

    👉 粘贴 classic PAT
    (例如:ghp_abcdEfgh1234567890xxxxYYYYZZZZ)

    如果成功:

    Login Succeeded
    

    你就可以拉 Mailu 镜像了。


    ✔ 第三步:验证是否可以拉取

    docker pull ghcr.io/mailu/dovecot:1.9
    

    成功后输出类似:

    1.9: Pulling from mailu/dovecot
    Digest: sha256:xxxxxx
    Status: Downloaded newer image
    

    现在你就可以继续:

    • 拉所有 7 个 Mailu 镜像
    • 推送到你的 docker-hk.loda.net.cn
    • 家里机器就能跑 Mailu

    ❗ 如果你用的是 fine-grained token → GHCR 一律拒绝

    ❗ 如果没开 read:packages → GHCR 一律拒绝

    ❗ 如果 Token 权限不对 → GHCR 一律拒绝

    ❗ 如果你用 GitHub 密码 → GHCR 一律拒绝

    这就是你为什么一直被拒绝的原因。


    🎯 请告诉我你现在执行的这条命令的完整输出:

    docker login ghcr.io
    

    有三种结果:

    1. 登录成功 → 我立即给你 push 脚本
    2. 401 unauthorized → 我帮你检查 token 权限
    3. 卡住 → 说明网络无法访问 GHCR login API,我给你第二方案(代理方式)

    你现在执行 docker login ghcr.io 并贴输出,我帮你继续下一步。

    1 条回复 最后回复
    0
    • Z 离线
      Z 离线
      zhongfangxiong
      写于 最后由 编辑
      #2

      root@gateway:/srv/mailu# docker login ghcr.io
      Username: zhongfang@qq.com
      Password:

      WARNING! Your credentials are stored unencrypted in '/root/.docker/config.json'.
      Configure a credential helper to remove this warning. See
      https://docs.docker.com/go/credential-store/

      Login Succeeded

      1 条回复 最后回复
      0
      回复
      • 在新帖中回复
      登录后回复
      • 从旧到新
      • 从新到旧
      • 最多赞同


      • 登录

      • 登录或注册以进行搜索。
      • 第一个帖子
        最后一个帖子
      0
      • 版块
      • 最新
      • 标签
      • 热门
      • 世界
      • 用户
      • 群组