文章总结: 本文介绍了使用DockerBuildx构建多架构镜像的三种方法,重点演示了通过Hermes工具配置多平台构建环境。详细说明了构建命令参数差异:单平台需加–load加载到本地,多平台需用–push推送到仓库,并指出–load仅适用于单平台场景。提供了完整的ARM64镜像构建、运行验证和保存为tar文件的实操示例。 综合评分: 82 文章分类: 安全开发,云安全,解决方案,安全工具,其他
Hermes的应用(十四):docker buildx
原创
MicroPest MicroPest
MicroPest
2026年6月28日 16:28 安徽
在小说阅读器读本章
去阅读
最近,docker打包成需要arm架构的镜像包。第一想到的是租一台arm机。第二,使用windows下较新版本的 Docker Desktop。当直接运行docker build 命令时,它实际上已经在底层调用buildx了8。更准确地说:docker build 背后就是buildx。可以打开终端(如 PowerShell 或 CMD),运行以下命令来查看版本信息,确认buildx 是否可用:docker buildx version ,如果命令成功执行并输出版本号,就说明你的环境已经准备好了。第三,让hermes给我们准备好,完成时直接输出:完美!multiarch builder 已经启动并运行。现在环境已经准备好可以构建多架构 Docker 镜像了。
1、可用平台:
– linux/amd64 (Native)
– linux/arm64 (ARM64/AArch64)
– linux/arm/v7 (ARM 32-bit)
– linux/arm/v6 (ARM 32-bit older)
– linux/ppc64le 等
2、使用方法:
构建多平台镜像(一次构建多个平台)
docker buildx build –platform linux/amd64,linux/arm64,linux/arm/v7 -t your-image:tag –push .
或者只构建ARM64
docker buildx build –platform linux/arm64 -t your-image:tag .
重要提示:
– 使用 –push 会自动推送镜像到仓库
– 不使用 –push 时,需要加 –load 才能加载到本地(仅支持单平台)
– 多平台镜像会生成一个 manifest list
3、上面的参数:–load
docker buildx build –platform linux/arm64 -t mywork:1.0 .
当时末尾出现了警告WARNING: No output specified…,就是因为缺少了 –load。现在加上 –load(就是 docker buildx build –platform linux/arm64 -t mywork:1.0 –load .),这个警告就会消失,构建完成后镜像会成功加载到本地。就是当你docker images时,会看到mywork在本地容器中的镜像。同时,可以 docker save mywork:1.0 -o mywork.tar保存成文件mywork.tar。
⚠️ 使用–load的重要限制
– –load 仅在使用单平台且使用 docker driver 时才有效,不使用 –load 而只用 –platform 单平台时,默认不会加载到本地。
– 对于 multiarch builder (docker-container driver),即使单平台也需要 –load 才能加载到本地。
– 如果需要推送到仓库,用 –push
4、总结:
(1). 环境配置 ✅
– QEMU 用户态静态二进制已安装
– Docker buildx 已配置多平台 builder:multiarch
– 支持平台:linux/amd64, linux/arm64, linux/arm/v7, 等
(2). 构建命令
单平台(ARM64):
docker buildx build –platform linux/arm64 -t your-image:tag –load .
多平台(amd64+arm64):
docker buildx build –platform linux/amd64,linux/arm64 -t your-image:tag –push .
(3). 示例验证
构建测试镜像
docker buildx build –platform linux/arm64 -t test-arm:latest –load ./test-arm
运行(会自动通过QEMU模拟ARM)
docker run –rm test-arm:latest
输出:Hello ARM from aarch64
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:MicroPest MicroPest MicroPest《Hermes的应用(十四):docker buildx》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。










评论