You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在GitHub Actions中认证拉取Docker Hub服务镜像?

解决GitHub Actions自托管运行器中Services镜像拉取Docker Hub速率限制问题

方案1:在Job级别配置Docker Hub认证

通过在Job的container字段下配置Docker仓库认证,让整个Job的所有Services镜像拉取时自动使用该认证,绕过未认证的速率限制。示例配置:

jobs:
  your-job-name:
    runs-on: self-hosted
    container:
      image: ubuntu:latest # 可替换为你需要的基础镜像
      credentials:
        username: ${{ secrets.DOCKER_HUB_USERNAME }}
        password: ${{ secrets.DOCKER_HUB_TOKEN }}
    services:
      postgres:
        image: postgres:14.5
    steps:
      # 此处添加你的作业步骤

方案2:为单个Services单独配置认证

直接在目标Service的定义中添加credentials字段,指定Docker Hub账号和令牌,拉取该服务镜像时会自动使用认证:

jobs:
  your-job-name:
    runs-on: self-hosted
    services:
      postgres:
        image: postgres:14.5
        credentials:
          username: ${{ secrets.DOCKER_HUB_USERNAME }}
          password: ${{ secrets.DOCKER_HUB_TOKEN }}
    steps:
      # 此处添加你的作业步骤

方案3:在自托管运行器上预配置全局Docker认证

如果所有作业都需要从Docker Hub拉取镜像,可在运行器机器上提前配置认证,无需在每个Job中重复设置:

  • 在运行器机器上执行docker login,输入Docker Hub用户名和个人访问令牌
  • 登录完成后,Docker会在当前用户目录下生成~/.docker/config.json文件
  • 确保GitHub Actions运行器进程有权限读取该文件

注意事项

  • 必须使用GitHub Secrets存储Docker Hub用户名和令牌,禁止硬编码敏感信息
  • Docker Hub个人访问令牌可在账号设置中生成,比账号密码更安全

内容的提问来源于stack exchange,提问作者Neil Middleton

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 01:40:33