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

Mac M1用Rancher Desktop+Docker Buildx推镜像遇insufficient_scope授权失败

在M1 MacBook Pro上用Rancher Desktop构建多平台Docker镜像时推送报错

我在MacBook Pro M1上使用Rancher Desktop构建并发布支持amd64和arm64的多平台Docker镜像,执行了以下命令:

docker buildx create --name my-app-image-builder --platform linux/arm64,linux/arm/v8

docker buildx build --builder my-app-image-builder --platform linux/amd64,linux/arm64 -o type=registry -t my-app:latest .

原本期望推送至本地仓库测试,但构建正常,推送阶段出现错误:

[exec] #38 exporting to image
     [exec] #38 exporting layers done
     [exec] #38 exporting manifest sha256:e78442aec2edae5e87fe3cd35cdcc0f66d8040febc1fed5aae6b98a03d20cfe9 done
     [exec] #38 exporting config sha256:073bd50a7bcdbb168aa4667444d10b4941c1e4c645bd6300828e1a8caa27864f done
     [exec] #38 exporting manifest sha256:7fe8dfdd7b5ba6b46a6018c57fdf19b5476fb98e0cb95934a78f5ca68db3f54d done
     [exec] #38 exporting config sha256:43f1ccc2b69eac343d84a25aa4df06c03b49dba2c18f49a7505d61d6bc26a30a done
     [exec] #38 exporting manifest list sha256:3eedf89c68a733854f0bd50a0eefed2858c150a8a73c63bee4a3deab2e5e47ce done
     [exec] #38 pushing layers
     [exec] #38 pushing layers 1.3s done
     [exec] #38 ERROR: server message: insufficient_scope: authorization failed
     [exec] ------
     [exec]  > exporting to image:
     [exec] ------
     [exec] ERROR: failed to solve: server message: insufficient_scope: authorization failed

版本信息:

  • Rancher desktop version: 1.6.2
  • macOS Monterey version: 12.6.1
  • Docker version: 20.10.17-rd, build c2e4e01
  • Docker buildx version: github.com/docker/buildx v0.9.1 ed00243a0ce2a0aee75311b06e32d33b44729689

不确定是操作失误还是Rancher Desktop的Docker实现存在限制,求相关线索或解决方向。


解决方向

1. 本地仓库权限与标签检查

如果推送的是本地私有仓库:

  • 先执行docker login <本地仓库地址>完成认证,确保当前用户拥有推送权限;
  • 检查镜像标签是否带本地仓库前缀,比如本地仓库端口是5000的话,标签应该是localhost:5000/my-app:latest,否则Docker会默认推送到Docker Hub,导致权限不足。

2. 修正Buildx构建器配置

创建构建器时指定的平台和构建时的目标平台不完全匹配,重新创建适配的构建器:

docker buildx create --name my-app-image-builder --platform linux/amd64,linux/arm64 --use

创建后直接使用该构建器,再执行构建推送命令。

3. Rancher Desktop环境适配排查

  • 切换容器运行时:在Rancher Desktop设置中确认"Container Runtime"选择的是Docker(部分版本默认是containerd,会影响buildx的推送逻辑);
  • 重置环境:重启Rancher Desktop,尝试重置Docker缓存或Kubernetes环境(在设置的"Reset"选项中操作);
  • 检查用户权限:执行groups命令确认当前用户在docker用户组中,若不在,添加后重新登录系统。

4. 调整Buildx输出方式

先将多平台镜像加载到本地Docker daemon,再手动推送:

docker buildx build --builder my-app-image-builder --platform linux/amd64,linux/arm64 -o type=docker -t my-app:latest .
docker push my-app:latest

这种方式可以绕过buildx直接推送的权限问题,同时验证镜像是否能正常加载。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 14:35:12