Docker指定镜像架构拉取platform参数 Docker
前言
在 ARM 机器拉 amd64 镜像,或反过来,默认按本机架构拉取会跑错。--platform 指定目标架构,多架构镜像可按需拉取。本文讲解查看架构、拉取指定平台、运行指定平台和构建多架构。
操作步骤
1. 查看本机架构
uname -m
x86_64 即 amd64,aarch64 即 arm64。
2. 指定平台拉取镜像
docker pull --platform linux/amd64 nginx
3. 运行时指定平台
docker run -d --platform linux/arm64 nginx
4. 查看镜像架构
docker inspect nginx | grep Architecture
5. 构建指定平台镜像
docker build --platform linux/amd64 -t myapp:amd64 .
6. 多架构构建(buildx)
docker buildx build --platform linux/amd64,linux/arm64 -t myapp --push .
常见坑
- 跨架构运行需模拟器(qemu),否则报 exec format error。
- --platform 只对多架构 manifest 镜像有效。
- 拉取后镜像名相同,可能覆盖本地其他架构。
- 服务器是 ARM 却拉 amd64,启动直接失败。
- 二进制应用没编译多架构,指定平台也跑不了。
- 仓库只提供单一架构,--platform 被忽略。
- buildx 多架构需配置 builder 和登录推送。
总结
uname -m 看本机架构,docker pull/run --platform 指定 linux/amd64 或 arm64。跨架构运行依赖 qemu 模拟,纯二进制要分别编译。buildx 可一次构建推送多架构镜像。
遇到问题加QQ23979811 协助处理