已完成认证仍无法推送Docker镜像至Google Cloud的问题排查
Docker推送至Google Artifact Registry 未认证问题排查方案
核心原因
你使用sudo docker push时,Docker会读取root用户的配置文件,而非你完成认证的普通用户配置。之前执行的gcloud auth configure-docker仅为普通用户配置了凭证助手,root用户的Docker配置中没有对应的认证设置,因此触发未认证错误。
解决方法
方法1:取消sudo执行Docker命令
如果你的普通用户已加入docker用户组,直接执行推送命令:
docker push australia-southeast1-docker.pkg.dev/colesworths/scaper/scraper:latest
若未加入用户组,先执行以下命令添加,之后退出终端重新登录生效:
sudo usermod -aG docker $USER
方法2:为root用户配置认证
若必须使用sudo,切换至root用户后重新完成认证和配置:
sudo su gcloud auth application-default login gcloud auth configure-docker australia-southeast1-docker.pkg.dev
完成后再执行sudo docker push命令即可。
额外验证项
- 检查普通用户配置文件:
~/.docker/config.json,root用户配置文件:/root/.docker/config.json,确保两者均包含正确的credHelpers配置。 - 执行
gcloud config get-value project确认当前gcloud关联项目为colesworths,避免项目不匹配引发权限问题。
内容的提问来源于stack exchange,提问作者D.G. Redd
相关产品推荐
相关产品推荐

