引言
在工作中,遇到了需要将应用程序打包成 Docker 镜像并同时运行在不同的 CPU 架构(X86 和 ARM)的环境中。
ARM 架构与 X86 相比,ARM 低功耗、移动市场占比高,X86 高性能、服务器市场占比高。
不同的 CPU 架构,对于运行相同的应用程序的 Docker 容器,需要分别在相应的 CPU 架构下编译的 Docker 镜像。 要构建多架构镜像,首先想到的是每种 CPU 架构环境(物理环境或虚拟环境)下构建相应的镜像。 但目前 docker 构建环境是 X86 的,没有 ARM 环境, 或者要申请 ARM 物理机,或者要申请/创建 ARM 虚拟机,或者交叉编辑等等,听上去都比较麻烦。
经过研究,发现 docker buildx 支持构建多架构镜像,这使得构建多架构镜像变得简单。 这样就可以在 X86 架构下构建 ARM 架构的镜像。
接下来,开始实践之旅吧。

环境
- Docker Desktop(Mac)
- Docker Engine 19.03+