在x86_64平台上构建多平台镜像(如arm64)时,我们可以利用docker官方提供的buildx工具来实现这一目标。
本文将以CentOS 7 x64系统为例,展示如何安装和使用Docker Buildx的最新版本(撰写时为v0.7.1)。您可以在以下链接下载最新版本:https://www.php.cn/link/901eed0aea40de0fd19a2cacc99a3066。
安装过程如下:
# 下载Buildx wget https://github.com/docker/buildx/releases/download/v0.7.1/buildx-v0.7.1.linux-amd64 # 创建目标文件夹 mkdir -p $HOME/.docker/cli-plugins # 移动文件 mv buildx-v0.7.1.linux-amd64 $HOME/.docker/cli-plugins/docker-buildx # 添加执行权限 chmod +x ~/.docker/cli-plugins/docker-buildx
Docker Buildx属于实验性功能,默认情况下未启用。我们需要修改/etc/docker/daemon.json文件,添加以下内容以启用此功能:
"experimental": true
启用后,进行初始化:
docker buildx create --name builderx docker buildx use builderx docker buildx inspect --bootstrap
安装并启用Docker Buildx后,我们可以使用它来构建多平台镜像。例如,原本的构建命令为:
docker build -t ${IMAGE_NAME}:${VERSION} .使用Docker Buildx的构建命令则为:
ECTouch是上海商创网络科技有限公司推出的一套基于 PHP 和 MySQL 数据库构建的开源且易于使用的移动商城网店系统!应用于各种服务器平台的高效、快速和易于管理的网店解决方案,采用稳定的MVC框架开发,完美对接ecshop系统与模板堂众多模板,为中小企业提供最佳的移动电商解决方案。ECTouch程序源代码完全无加密。安装时只需将已集成的文件夹放进指定位置,通过浏览器访问一键安装,无需对已有
docker buildx build --platform linux/amd64,linux/arm64 -t ${IMAGE_NAME}:${VERSION} . --push其中,--platform参数指定需要构建的平台,如linux/amd64和linux/arm64;--push参数表示构建完成后自动推送到Docker Hub仓库。构建完成后,您可以在镜像的tag中看到支持的多个平台。
如果您的镜像支持多平台,拉取时会根据您的平台自动下载相应的镜像。
总结:
- Docker Buildx需要修改配置文件来启用此功能。
- Docker Buildx需要初始化后才能使用。
- 建议在构建镜像时添加
--push参数,否则docker images可能看不到镜像,具体原因尚不明确。
本文部分内容参考了:Docker Buildx在x86_64机器上构建arm64镜像。









