2022-10-17 04:18:05
在x86_64平台上使用Docker Buildx构建多平台镜像(如arm64)的完整流程如下:
一、安装Docker Buildx(以CentOS 7 x64为例)下载Buildx工具访问
安装到Docker插件目录
mkdir -p $HOME/.docker/cli-pluginsmv buildx-v0.7.1.linux-amd64 $HOME/.docker/cli-plugins/docker-buildxchmod +x ~/.docker/cli-plugins/docker-buildx修改Docker配置文件编辑/etc/docker/daemon.json,添加以下内容(若文件不存在则新建):
{ "experimental": true}重启Docker服务
systemctl restart docker输出应显示Status: running,表示构建器已就绪。
基础构建命令替换传统docker build命令为Buildx版本:
docker buildx build --platform linux/amd64,linux/arm64 -t ${IMAGE_NAME}:${VERSION} . --push关键参数:
--platform:指定目标平台(支持多平台逗号分隔)。
--push:自动推送镜像至Docker Hub(若省略,镜像可能仅存在于构建器缓存中)。
验证镜像平台支持推送后,在Docker Hub或私有仓库中查看镜像的Tags标签页,应显示类似以下信息:
linux/amd64, linux/arm64
配置文件必要性Docker Buildx为实验性功能,必须通过daemon.json启用experimental: true,否则会报错unknown flag: --platform。
构建器初始化首次使用前需执行create、use、inspect --bootstrap三步操作,否则构建命令会因构建器未就绪而失败。
--push参数的重要性若省略--push,镜像可能仅存在于本地构建器缓存中,导致docker images无法列出。建议始终添加此参数以确保镜像持久化。
跨平台构建原理Buildx通过QEMU模拟器实现在x86_64主机上构建arm64镜像,无需实际ARM硬件支持。
通过以上步骤,您可以在x86_64主机上高效构建支持多平台的Docker镜像,并自动推送至仓库供不同架构设备使用。