使用Docker Buildx构建多平台镜像

在x86_64平台上构建多平台镜像(如arm64)时,我们可以利用docker官方提供的buildx工具来实现这一目标。

使用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移动商城系统 ECTouch移动商城系统

ECTouch是上海商创网络科技有限公司推出的一套基于 PHP 和 MySQL 数据库构建的开源且易于使用的移动商城网店系统!应用于各种服务器平台的高效、快速和易于管理的网店解决方案,采用稳定的MVC框架开发,完美对接ecshop系统与模板堂众多模板,为中小企业提供最佳的移动电商解决方案。ECTouch程序源代码完全无加密。安装时只需将已集成的文件夹放进指定位置,通过浏览器访问一键安装,无需对已有

ECTouch移动商城系统 0 查看详情 ECTouch移动商城系统
docker buildx build --platform linux/amd64,linux/arm64 -t ${IMAGE_NAME}:${VERSION} . --push

其中,--platform参数指定需要构建的平台,如linux/amd64linux/arm64--push参数表示构建完成后自动推送到Docker Hub仓库。构建完成后,您可以在镜像的tag中看到支持的多个平台。

使用Docker Buildx构建多平台镜像如果您的镜像支持多平台,拉取时会根据您的平台自动下载相应的镜像。

总结:

  • Docker Buildx需要修改配置文件来启用此功能。
  • Docker Buildx需要初始化后才能使用。
  • 建议在构建镜像时添加--push参数,否则docker images可能看不到镜像,具体原因尚不明确。

本文部分内容参考了:Docker Buildx在x86_64机器上构建arm64镜像。

以上就是使用Docker Buildx构建多平台镜像的详细内容,更多请关注其它相关文章!

本文转自网络,如有侵权请联系客服删除。