推送Docker镜像到GCR提示未授权且WSL2 IP被谷歌封禁如何解决
- 首先完成GCR的Docker认证配置,PowerShell和WSL2 Ubuntu为独立环境,需要分别执行以下操作:
- 安装Google Cloud SDK后,执行登录命令:
gcloud auth login,在弹出的浏览器窗口中完成账号授权 - 切换到目标GCP项目:
gcloud config set project 你的GCP项目ID - 配置Docker自动使用gcloud凭证访问GCR:
gcloud auth configure-docker,执行后会自动写入认证信息到Docker配置文件
- 安装Google Cloud SDK后,执行登录命令:
- 检查待推送镜像的标签格式是否符合GCR规范,正确格式为:
gcr.io/[你的GCP项目ID]/[自定义镜像名]:[版本标签],标签写错会导致推送到无权限的路径,触发未授权错误 - 若配置完成仍然报错,检查Docker配置文件权限:WSL2环境下执行
ls -l ~/.docker/config.json确认当前用户有读权限,PowerShell环境下检查C:\Users\你的用户名\.docker\config.json文件属性,确认当前账号有访问权限
问题2:WSL2 Ubuntu IP被谷歌封禁解决方案
- 临时解封方案:
- 若为WSL2内网IP触发封禁,在Windows PowerShell执行
wsl --shutdown,等待10秒后重新启动WSL2 Ubuntu即可获取新的内网IP,解除封禁 - 若为公网出口IP触发封禁,可临时切换网络(如连接手机热点)使用,谷歌针对此类操作的临时封禁通常24-72小时会自动解除
- 若为WSL2内网IP触发封禁,在Windows PowerShell执行
- 避免再次被封方案:
- 先完成上述GCR认证配置,确认配置正确后再执行推送操作,不要反复重试未认证的推送请求
- 配置gcloud最大重试次数,避免自动重复发起无效请求:
gcloud config set container/retry_count 2
内容的提问来源于stack exchange,提问作者Enes Korkmaz
相关产品推荐
相关产品推荐

