The invention discloses a container Docker file, a container mirror image fast generation method and a system. The steps of the container Docker file fast generation method include running and tracking the target application for the target application to be packaged, recording the operating system dependencies and organizing the construction of the target application during the running process. The target application is packaged into a list of required files for container mirroring, and a directory is created based on the list of files needed to package the target application into container mirroring for packaging the target application into container mirroring and its container mirroring files. The invention can automatically pack any target application program into a container to complete the construction of the executable minimum environment closure of the target application program. The packaged container is smaller than the handmade container, faster and more convenient than the manual packaging method, and does not require the operator to have a deep understanding of the composition of the application program. People can easily container the specific applications they want.
【技术实现步骤摘要】
一种容器Dockerfile、容器镜像快速生成方法及系统
本专利技术涉及容器生成和云计算技术,具体涉及一种容器Dockerfile、容器镜像快速生成方法及系统,用于满足已有应用软件向云计算平台迁移的需求。
技术介绍
随着“大物移云”(大数据,物联网,移动通讯,云技术)的时代到来,可编程按需定制、集中式统一管理、动态流量监管、自动化部署的新一代云计算环境带来了生产生活和商业模式的根本性改变。越来越多的企业构建了自己的私有云或者采用了第三方提供商的云服务,并将自己的传统业务系统向云平台进行迁移和部署,构建新的商业模式,降低服务和运维成本。容器技术就是当前应对这个需求的一项有效的技术。容器技术借鉴了标准集装箱的概念。集装箱运输货物,而容器运输软件。每个容器都包含一个软件镜像,也就是容器的“货物”,而且与真正的货物一样,容器里的软件镜像可以进行一些操作。例如,镜像可以被创建、启动、关闭、重启以及销毁。和集装箱一样,容器在执行上述操作时,并不关心容器中到底塞进了什么,它不管里面是Web服务器,还是数据库,或者是应用程序服务器什么的。所有容器都按照相同的方式将内容“装载”进去 ...
【技术保护点】
1.一种容器Dockerfile快速生成方法,其特征在于实施步骤包括:1)针对待打包的目标应用程序,运行目标应用程序并对目标应用程序追踪执行,记录目标应用程序在运行过程中的操作系统依赖项;2)根据操作系统依赖项组织构建将目标应用程序打包至容器镜像的所需文件列表;3)根据将目标应用程序打包至容器镜像的所需文件列表生成用于将目标应用程序打包至容器镜像的Dockerfile文件及其容器镜像文件创建目录。
【技术特征摘要】
1.一种容器Dockerfile快速生成方法,其特征在于实施步骤包括:1)针对待打包的目标应用程序,运行目标应用程序并对目标应用程序追踪执行,记录目标应用程序在运行过程中的操作系统依赖项;2)根据操作系统依赖项组织构建将目标应用程序打包至容器镜像的所需文件列表;3)根据将目标应用程序打包至容器镜像的所需文件列表生成用于将目标应用程序打包至容器镜像的Dockerfile文件及其容器镜像文件创建目录。2.根据权利要求1所述的容器Dockerfile快速生成方法,其特征在于,步骤1)中运行目标应用程序并对目标应用程序追踪执行具体是指将目标应用程序隔离在一个独立的操作系统进程空间中运行,该独立的操作系统进程空间中系统调用是目标应用程序与外界交互的唯一通道,且目标应用程序的所有系统调用受到监控。3.根据权利要求1所述的容器Dockerfile快速生成方法,其特征在于,步骤1)的详细步骤包括:1.1)针对待打包的目标应用程序,将目标应用程序隔离在一个独立的操作系统进程空间中,该独立的操作系统进程空间中系统调用是目标应用程序与外界交互的唯一通道,且目标应用程序的所有系统调用受到监控;初始化生成目标应用程序的运行参数,基于运行参数运行目标应用程序并对目标应用程序进行一轮迭代追踪执行;1.2)收集目标应用程序运行所需要的环境变量及环境变量值,加入目标应用程序在运行过程中的操作系统依赖项中的环境变量依赖项;1.3)监控目标应用程序运行期间的系统调用,所述系统调用的执行主体包括目标应用程序自身、目标应用程序通过进程创建的系统调用创建的进程、目标应用程序进行本地进程间通信类的系统调用以及共享内核对象类的系统调用后重新启动的进程,所述系统调用的类型包括涉及文件的系统调用、涉及进程创建的系统调用、本地进程间通信类的系统调用、共享内核对象类的系统调用,且目标应用程序进行本地进程间通信类的系统调用以及共享内核对象类的系统调用时首先获取调用的进程的启动参数、杀死调用的进程并基于获取的启动参数以程序追踪模式重新启动调用的进程;最终分别记录文件的系统调用对应的文件加入操作系统依赖项中的文件依赖项、涉及进程创建的系统调用创建的进程加入作为操作系统依赖项中的进程依赖项、本地进程间通信类的系统调用和共享内核对象类的系统调用涉及的进程加入操作系统依赖项中的通信进程依赖项;1.4)判断目标应用程序是否结束运行或者运行时间超过预设的时间阀值,如果目标应用程序是否结束运行或者运行时间超过预设的时间阀值,则跳转执行下一步;1.5)判断本轮追踪执行得到的操作系统依赖项是否有新项目增加,如果有新的项目增加,则改变目标应用程序的运行参数,基于运行参数运行目标应用程序并对目标应用程序进行下一轮迭代追踪执行,跳转执行步骤1.2);否则,跳转执行步骤2)。4.根据权利要求3所述的容器Dockerfile快速生成方法,其特征在于,步骤1.2)中收集目标应用程序运行所需要的环境变量及环境变量值具体是指方法(1)、方法(2)中的至少一种:方法(1)在目标应用程序执行前记录当前可见的环境变量及环境变量值,作为操作系统依赖项中的环境变量依赖项;方法(2)在目标应用程序执行过程中对监控getenv标准库函数的函数调用,记录目标应用程序对监控getenv标准库函数的函数调用获得环境变量及环境变量值,作为操作系统依赖项中的环境变量依赖项。5.根据权利要求3所述的容器Dockerfile快速生成方法,其特征在于,步骤1.3)中文件的系统调用包括:调用号2为的sys_open函数调用、调用号4为的sys_stat函数调用、调用号为6的sys_lstat函数调用、调用号为21的sys_access函数调用、调用号为59的sys_execve函数调用、调用号为127的sys_statfs函数调用、调用号为188的sys_setxattr函数调用、调用号为189的sys_lsetxatt...
【专利技术属性】
技术研发人员:宋卓,李根,周旭,刘蓬侠,刘齐军,马丑贤,谢成龙,吴侃,孙朝辉,徐霞丽,易春根,杨耀,唐宏伟,赵丽霞,潘浩,宁文飞,廖振廷,传军,
申请(专利权)人:人和未来生物科技长沙有限公司,
类型:发明
国别省市:湖南,43
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。