这段时间因为需要跨cpu架构build docker镜像,接触到一个新东西 docker buildx,关于它是什么另外会记录一篇文章,这里先记录下如何查看docker buildx支持哪些cpu架构。
用下面 1 条命令就能列出 buildx 实例里到底有哪些平台:
docker buildx ls
典型输出(截断):
NAME/NODE DRIVER/ENDPOINT STATUS PLATFORMS
cross * docker-container
cross0 unix:///var/run/docker.sock running linux/amd64, linux/arm64, linux/riscv64, linux/ppc64le, linux/s390x, linux/386, linux/arm/v7, linux/arm/v6
只要看到 linux/arm64(或 linux/arm64/v8)出现在 PLATFORMS 列,就说明 QEMU 已注册、buildx 已就绪,可以 docker buildx build --platform linux/arm64 ... 直接编译。
如果列表里 没有 linux/arm64
- 先装 QEMU 并注册
docker run --rm --privileged multiarch/qemu-user-static --reset -p yes - 重新创建 / 重启构建器
docker buildx rm cross # 如有旧实例 docker buildx create --name cross --driver docker-container --use docker buildx inspect --bootstrap - 再
docker buildx ls确认 linux/arm64 已出现。
一行命令快速判断(脚本友好)
docker buildx ls | grep -q linux/arm64 && echo "ok" || echo "missing arm64"
总结
docker buildx ls看 PLATFORMS 列;
有 linux/arm64 就能编;没有就执行 qemu-user-static --reset -p yes + 重新 create 即可。