Hermes的应用(十四):dockerbuildx

admin 2026-07-02 05:49:27 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文介绍了使用DockerBuildx构建多架构镜像的三种方法,重点演示了通过Hermes工具配置多平台构建环境。详细说明了构建命令参数差异:单平台需加–load加载到本地,多平台需用–push推送到仓库,并指出–load仅适用于单平台场景。提供了完整的ARM64镜像构建、运行验证和保存为tar文件的实操示例。 综合评分: 82 文章分类: 安全开发,云安全,解决方案,安全工具,其他


cover_image

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》

评论:0   参与:  0