Docker镜像推送至Artifact Registry遇400未授权错误求助
针对你推送镜像时提示not authenticated: No valid credential was supplied的问题,结合你的操作记录和config.json配置,给你几个针对性的排查和解决步骤:
1. 确认当前gcloud活跃账号正确
有时候登录多个账号后,gcloud默认使用的账号可能不是你配置权限的所有者账号,执行以下命令检查:
gcloud config get-value account
如果输出不是目标账号,用gcloud config set account <你的所有者账号>切换。
2. 解决Docker凭据存储与gcloud credHelper的冲突
你的config.json里同时配置了credsStore: desktop和credHelpers,这两者可能互相干扰,导致Docker无法正确调用gcloud获取凭据:
- 先备份当前的
~/.docker/config.json文件 - 打开
config.json,将"credsStore": "desktop"这一行注释或删除 - 保存后,重新执行一次Docker配置命令:
gcloud auth configure-docker me-west1-docker.pkg.dev
3. 验证认证有效性
执行以下命令手动测试登录,确认凭据是否正常:
gcloud auth print-access-token | docker login -u oauth2accesstoken --password-stdin me-west1-docker.pkg.dev
如果提示Login Succeeded,说明认证凭据没问题,此时再尝试推送镜像。
另外,也可以检查gcloud凭据助手是否能正常列出条目:
docker-credential-gcloud list
输出中应该能看到me-west1-docker.pkg.dev的相关记录。
4. 切换Docker上下文测试
你的当前Docker上下文是desktop-linux,可以尝试切换到默认上下文排除干扰:
docker context use default
切换完成后重新执行推送操作。
5. 确认Artifact Registry仓库已创建
虽然错误提示是认证问题,但如果目标区域的仓库尚未创建,也可能触发类似错误。执行以下命令检查仓库是否存在:
gcloud artifacts repositories list --location=me-west1
如果没有找到目标仓库,先创建仓库再推送:
gcloud artifacts repositories create <仓库名> --repository-format=docker --location=me-west1
内容的提问来源于stack exchange,提问作者noor soreti
相关产品推荐
相关产品推荐

