一种实现Docker镜像交叉编译的方法技术

技术编号:24573025 阅读:55 留言:0更新日期:2020-06-20 23:59
本发明专利技术公开了一种实现Docker镜像交叉编译的方法,具体包括以下步骤:S1、在Docker镜像交叉编译环境系统上安装qemu‑user‑static服务程序,S2、检查Linux系统中的binfmt_misc是否注册对应的模拟器配置,S3、确定需要交叉编译的Docker镜像的CPU架构类型,S4、编写构建Docker镜像的Dockerfile文件,不同目标CPU架构的Docker镜像使用同一个Dockerfile文件来构建,S5、通过查看生成的Docker镜像中的标识来确认校验生成的Docker镜像是否为目标CPU架构的镜像,本发明专利技术涉及计算机程序技术领域。该实现Docker镜像交叉编译的方法,在启动应用编译环境时,能够完全的屏蔽掉底层硬件设施的差异,解决了跨平台交叉编译的问题,从而使得能够在快速启动应用交叉编译环境的同时,也能够屏蔽掉底层硬件差异带来的问题。

A method of cross compiling docker image

【技术实现步骤摘要】
一种实现Docker镜像交叉编译的方法
本专利技术涉及计算机程序
,具体为一种实现Docker镜像交叉编译的方法。
技术介绍
Docker是目前最为流行的Linux容器解决方案,提供简单易用的容器使用接口。Docker将应用程序与该程序的依赖文件,打包到一个镜像文件中。通过运行这个打包的镜像文件,就会生成一个虚拟容器,应用程序在这个虚拟容器里运行,就好像运行在真实的服务器上一样,通过这样的方式对应用的运行时环境进行打包,有助于实现应用部署的便捷性、应用测试环境搭建的灵活性、跨平台迁移的快捷性。应用程序打包成容器镜像后,可以运行在任何环境中,包括:物理服务器、虚拟机、公有云、私有云等。由于Docker具备的应用运行环境打包、容器轻量化等特性,使得Docker技术应用在越来越广泛的场景之中,尤其是在跨CPU架构的应用迁移、打包、编译的场景中,通过运行已经打包好的应用编译环境的容器镜像,可以快速的启动应用的编译环境,并编译对应CPU架构的可执行程序。但是,由于Docker镜像只是应用运行环境的打包,使其对所运行的宿主机的CPU架构、内核本文档来自技高网...

【技术保护点】
1.一种实现Docker镜像交叉编译的方法,其特征在于:具体包括以下步骤:/nS1、在Docker镜像交叉编译环境系统上安装qemu-user-static服务程序,由于默认安装qemu-user-static包并没有安装所有CPU架构的模拟器,如需要编译的目标CPU架构镜像对应的模拟器没有安装,则需要重新编译QEMU服务包,提前下载QEMU服务代码,完成QEMU重新编译后,测试服务器即可运行目标CPU架构的程序;/nS2、检查Linux系统中的binfmt_misc是否注册对应的模拟器配置,在安装QEMU服务时,QEMU自带的postinstall脚本会自动的将默认支持的CPU架构信息注册到...

【技术特征摘要】
1.一种实现Docker镜像交叉编译的方法,其特征在于:具体包括以下步骤:
S1、在Docker镜像交叉编译环境系统上安装qemu-user-static服务程序,由于默认安装qemu-user-static包并没有安装所有CPU架构的模拟器,如需要编译的目标CPU架构镜像对应的模拟器没有安装,则需要重新编译QEMU服务包,提前下载QEMU服务代码,完成QEMU重新编译后,测试服务器即可运行目标CPU架构的程序;
S2、检查Linux系统中的binfmt_misc是否注册对应的模拟器配置,在安装QEMU服务时,QEMU自带的postinstall脚本会自动的将默认支持的CPU架构信息注册到binfmt_misc中,对应的系统路径为/proc/sys/fs/binfmt_misc,对于手动修改了binfmt_misc的配置信息时,需要进行重新加载,使用命令systemctlrestartsystemd-binfmt;
S3、确定需要交叉编译的Docker镜像的CPU架构类型,提前下载相应CPU架构的Docker基础镜像并重命名,命名规则为IMAGE_NAME-ARCH:TAG;
S4、编写构建Docker镜像的Dockerfile文件,不同目标CPU架构的Docker镜像使用同一个Dockerfile文件来构建,在Dockerfile定义引用基础镜像的语句中,拼接目标CPU的ARG值,在构建不同目标CPU架构时,动态的传入对应的架构名称,并引用对应CPU架构的基础镜像,在通过Dockerfile文件构建目标CPU架构的Docker镜像时,通过--build-argARCH=ARCH_NAME选项传入指定的CPU架构信息;
S5、校验生成的Docker镜像是否为目标CPU架构的镜像,通过查看生成的Docker镜像中的标识来确认。


2.根据权利要求1所述的一种实现Docker镜像交叉编译的方法,其特征在于:所述步骤S1中在编译时,通过--target-list选项指定目标CPU架构的名称,比如新增对mips64el的CPU架构支持,加上选项--t...

【专利技术属性】
技术研发人员:王伟华梅进
申请(专利权)人:广西梯度科技有限公司
类型:发明
国别省市:广西;45

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1