Docker推送镜像到GCP GCR出现name unknown: Buckets报错求助
Docker推送GCR镜像报错排查方案
核心错误原因
从提供的日志可以直接定位到首要问题:镜像标签里的GCR路径存在多余空格,日志显示的仓库路径为gcr.io/ myprojectID /myrstudio,项目ID前后的多余空格导致GCR无法正确匹配对应的存储桶,最终抛出找不到存储桶的错误。
修复步骤
第一步:修正镜像标签
先删除原有错误标签,重新为本地镜像打正确的GCR标签,注意替换<本地镜像ID/名称>为你本地原有的镜像ID或镜像名,替换<你的GCP项目实际ID>为你GCP控制台中显示的项目ID,全程不要添加多余空格:# 删除错误标签 docker rmi gcr.io/myprojectID/myrstudio:latest # 打正确标签 docker tag <本地镜像ID/名称> gcr.io/<你的GCP项目实际ID>/myrstudio:latest第二步:校验GCP身份与权限
如修正标签后仍推送失败,检查两项配置:- 本地Docker客户端已完成GCR认证:先通过
gcloud auth login登录你有权限的GCP账号,再执行gcloud auth configure-docker完成Docker的GCR身份配置 - 你的GCP账号拥有目标项目的存储写入权限:至少需要
Container Registry Writer权限,保证可以向artifacts.<你的GCP项目实际ID>.appspot.com存储桶写入数据
- 本地Docker客户端已完成GCR认证:先通过
第三步:重新推送镜像
配置完成后重新执行推送命令即可:docker push gcr.io/<你的GCP项目实际ID>/myrstudio:latest
内容的提问来源于stack exchange,提问作者gaut
相关产品推荐
相关产品推荐

