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

使用Pipeline推送代码至Docker Hub时拉取镜像认证失败求助

解决Docker Hub镜像拉取Unauthorized(用户名密码错误)问题

针对你遇到的拉取docker:20.10.17-dind镜像时返回unauthorized: incorrect username or password的问题,除了你已经尝试的用用户名替代邮箱、更换镜像标签的方案,还可以按以下步骤排查:

  • 验证凭证的有效性
    本地手动测试Docker Hub登录与镜像拉取:

    1. 执行docker login docker.io,输入你的Docker Hub用户名和密码
    2. 执行docker pull docker:20.10.17-dind
      如果本地能成功拉取,说明账号本身没问题,问题出在Pipeline的凭证配置上;如果本地也失败,重置Docker Hub密码后再试,排除密码错误或账号异常。
  • 检查Pipeline凭证的注入方式

    • 若使用环境变量存储凭证,确认变量名拼写正确(比如DOCKER_USERNAME/DOCKER_PASSWORD),密码若包含特殊字符(如$、!、@),需在配置时用单引号包裹或转义,避免被Shell解析篡改。
    • 若使用Secret管理工具(如GitLab CI Secret、K8s Secret),重新确认Secret的内容是否与正确的用户名密码一致,避免创建Secret时的输入错误或缓存问题。
  • 确认Pipeline中的Docker登录步骤
    确保在拉取镜像前执行了完整的登录命令:

    docker login -u $DOCKER_USERNAME -p $DOCKER_PASSWORD docker.io
    

    若使用Docker-in-Docker(dind)服务,需确认凭证已传递给dind容器:比如在GitLab CI中,需将DOCKER_AUTH_CONFIG变量传递给dind服务,或在启动dind时挂载Docker配置文件。

  • 排查镜像标签与仓库的匹配性
    访问Docker Hub的library/docker仓库页面,确认20.10.17-dind标签确实存在。部分情况下,标签不存在会被Docker daemon误报为权限错误。

  • 检查网络与代理干扰
    确认Pipeline运行环境能正常访问registry-1.docker.io,排查是否有防火墙、代理拦截请求,导致登录请求失败并返回错误的权限提示。

内容的提问来源于stack exchange,提问作者Arsalan Yasin

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 11:40:59