背景
项目研发工程的流水线runner是amd64架构的Linux系统,近期为了让服务跑在国产机器上,在构建镜像的时候,需要制作arm64架构的镜像。基于此,调研了相关资料,从docker官方文档来看,可以用buildx插件在amd64架构的机器上做出arm64架构的镜像:https://docs.docker.com/build/building/multi-platform/,亲测可用。
注意事项
构建镜像的机器需要Linux内核4.8版本以上,因为要安装运行一个模拟器(低版本安装不了),这玩意的作用就是模拟跨平台的指令,从而可以在构建镜像的过程中,基于指定架构执行一些RUN命令等操作,构建出目标架构的镜像。比如:我测试的Dockerfile内容如下,在使用buildx构建的过程中,可以从输出信息看到更新了arm相关的内容(我本机是amd64的Ubuntu虚机)。


构建完成之后,docker run 运行测试,可以看到有架构不匹配的警告提示,因为本地运行着模拟器,所有也能正常启动起来。

本文介绍了如何在amd64架构的Linux系统上使用Docker的buildx插件构建arm64架构的镜像。内容包括构建前的注意事项,如Linux内核版本要求,以及通过buildx进行镜像标签合并的方法,解决构建多平台镜像的问题。
最低0.47元/天 解锁文章

185

被折叠的 条评论
为什么被折叠?



