使用Docker Buildx构建多架构多平台Docker镜像
创作时间:
作者:
@小白创作中心
使用Docker Buildx构建多架构多平台Docker镜像
引用
1
来源
1.
https://www.mapleflying.top/archives/using-docker-buildx-to-build-multi-architecture-and-multi-platform-docker-images.html
Docker Buildx 是一个强大的CLI插件,它基于BuildKit扩展了Docker的构建功能,使得开发者无需修改Dockerfile,就可以轻松构建支持不同CPU架构的Docker镜像,并且能够推送到Docker Hub。本文将详细介绍如何安装和使用Docker Buildx来构建多架构和多平台的Docker镜像。
安装 Docker Buildx
使用二进制安装
# 下载二进制文件
wget https://github.com/docker/buildx/releases/download/v0.11.2/buildx-v0.11.2.linux-amd64
# 创建文件夹
mkdir -p $HOME/.docker/cli-plugins
# 移动文件
mv buildx-v0.11.2.linux-amd64 $HOME/.docker/cli-plugins/docker-buildx
# 赋予二进制文件执行权限
chmod +x $HOME/.docker/cli-plugins/docker-buildx
编译二进制文件安装
建议采用编译安装的方式,避免在接下来的过程中出现奇怪的错误。
export DOCKER_BUILDKIT=1
docker build --platform=local -o . "https://github.com/docker/buildx.git"
mkdir -p $HOME/.docker/cli-plugins
mv buildx $HOME/.docker/cli-plugins/docker-buildx
chmod +x $HOME/.docker/cli-plugins/docker-buildx
启用 Buildx 插件
Docker Buildx 属于实验性功能,在确保 Docker 版本不低于 19.03,通过执行以下命令开启新特性,以启用 buildx 插件。
export DOCKER_CLI_EXPERIMENTAL=enabled
初始化 Docker Buildx
docker buildx create --name builderx
docker buildx use builderx
docker buildx inspect --bootstrap
启用 binfmt_misc
如果你使用的是 Docker 桌面版(包含 macOS 和Windows)默认已启用,而对于Linux系统,可通过运行一个特权容器来启用 binfmt_misc
docker run --privileged --rm tonistiigi/binfmt --install all
验证 binfmt_misc 是否开启:
ls -al /proc/sys/fs/binfmt_misc/
buildx 会通过 QEMU 模拟器和 binfmt_misc 模拟不同平台构建镜像,请查看是否包含 qemu-* 文件。
构建多平台镜像
可提前通过 docker login 命令登录 Docker Hub,在完成构建多平台镜像后,会同时推送镜像至 Docker Hub。
安装并启用后,我们就可以使用 Docker Buildx 来构建多平台镜像了,以往我们进行构建镜像的命令:
build -t ${IMAGE_NAME}:${VERSION} .
使用 Docker Buildx 体验上与 docker build 用法基本相同,构建多平台的命令为:
docker buildx build --platform=linux/amd64,linux/arm/v7,linux/arm64/v8 -t ${IMAGE_NAME}:${VERSION} . --push
- --platform:指定需要构建的平台,例如:linux/amd64、linux/arm64 或 darwin/amd64;
- --push:指构建完毕后自动推送到 Docker hub 仓库;
- -t:镜像的名称及 tag;
- .:表示 Dockerfile 文件位于当前路径下。
Docker 镜像完成构建、推送后,我们可以在 Docker Hub 找到对应镜像的 tag 就可以看到支持多个平台。
热门推荐
残疾人证办理电话查询:法律依据、流程与权利保障
可转债交易详细规则,可转债如何购买?
超市各个区域LED照明设计指南
乔治·丘奇团队利用多重基因编辑,创造出猛犸象一样的长毛鼠
秋冬开花的草本花卉有哪些?这份54种花卉品种推荐请收好
初步了解近视防控的“网红”眼药水——低浓度阿托品
美少女乐团与厚重吉他!日本动漫中的不合理设定,却带来反差萌?与大斧女战士如出一辙
律师拟定离婚协议的收费标准及影响因素
太阳能光伏板回收过程介绍
海绵不仅是清洁工具,还有着不为人知的秘密!
厨师长教你调糖醋汁,记住万用比例“12345”,做出正宗美味
糖醋汁的经典调法:12345比例详解与应用技巧
2025年专项计划招生条件全解析:复读生如何报考?
火星殖民:挑战与机遇
科学家用知识图谱增强大模型新范式,提升大模型的推理能力和效率
雪莲花:从药用到食用的全面解析
张晚意景甜《似锦》追剧日历:首更4集,连更7日至16集,共40集?
高并发场景下的库存管理,理论与实战能否兼得?
8万元以上差价 比亚迪唐DM-p和DM-i你选谁?
轻度心衰的10个表现
如何分析黄金价格的相关数据?这些数据对市场了解有何帮助?
王凯:中国城市规划理论与实践的探索
物联卡如何改变快递柜的服务模式?
如何使用测试案例模板提升软件质量?
木门变形翘了能压平吗?如何防止木板变形?
涩谷428攻略:《428:被封锁的涩谷》的叙事艺术
如何提高歌词写作水平
电动汽车热泵热管理解读:技术原理、应用和未来发展趋势
我国锂离子超级电容器实现完全国产化
十万元内自动挡车型选购指南:轿车、SUV、新能源一网打尽