CN114296864A - 一种iso镜像转换成容器镜像的方法及设备 - Google Patents

一种iso镜像转换成容器镜像的方法及设备 Download PDF

Info

Publication number
CN114296864A
CN114296864A CN202111493408.3A CN202111493408A CN114296864A CN 114296864 A CN114296864 A CN 114296864A CN 202111493408 A CN202111493408 A CN 202111493408A CN 114296864 A CN114296864 A CN 114296864A
Authority
CN
China
Prior art keywords
image
mirror image
virtual machine
iso
disk
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202111493408.3A
Other languages
English (en)
Inventor
黄芳凤
赵凯麟
崔思恒
韦克璐
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Asean Information Harbor Co ltd
Original Assignee
China Asean Information Harbor Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by China Asean Information Harbor Co ltd filed Critical China Asean Information Harbor Co ltd
Priority to CN202111493408.3A priority Critical patent/CN114296864A/zh
Publication of CN114296864A publication Critical patent/CN114296864A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

本发明公开了一种iso镜像转换成容器镜像的方法,涉及云计算技术领域,解决将iso镜像转换成虚拟机容器镜像的技术问题,方法包括:创建kubevirt虚拟机规格模板;提供http文件服务器;接收用户上传的iso镜像后,并创建虚拟机;运行虚拟机生成虚拟机实例,进入安装系统步骤;用户通过vnc控制安装操作系统;安装完成后生成disk.img文件;通过qemu命令将raw格式的镜像转换成qcow2压缩镜像;qcow2镜像转换成docker镜像,生成Dockerfile文件;生成docker镜像;将docker镜像上传镜像仓。本发明还公开了一种iso镜像转换成容器镜像的设备。本发明可以将任意满足虚拟机创建的操作系统镜像转换成docker镜像,在平台内统一管理,避免两套镜像管理方式,减少维护成本。

Description

一种iso镜像转换成容器镜像的方法及设备
技术领域
本发明涉及云计算技术领域,更具体地说,它涉及一种iso镜像转换成容器镜像的方法及设备。
背景技术
随着云计算的技术和应用不断发展,业务的全面上云需求不断扩大,大部分web无状态业务都开始容器化,未来k8s+容器肯定是业务发布的主流选择(kubernetes,简称k8s,是用8代替名字中间的8个字符“ubernete”而成的缩写。是一个开源的,用于管理云平台中多个主机上的容器化的应用),业界也基本成型。虽然虚拟机的使用场景不断被压缩,但是虚拟机作为一个常用的运行时,未来也会长期存在较长时间。目前已有开源社区提供使用k8s纳管虚拟机的方法,如kubevirt等(kubevirt是Red Hat开源的以容器方式运行虚拟机的项目,是基于kubernetes运行,以CRD形式将VM管理接口接入到kubernetes,通过一个pod去使用libvirtd管理VM方式)。在容器云平台中,使用docker镜像仓管理镜像已经是比较普遍的方式,但是虚拟机所接受的文件格式只能为qcow2或者raw,而官方免费提供的虚拟机镜像太少了,而且可能有定制化的需求,而且,在云平台上管理镜像方式需要统一以便于管理,但是目前缺少一种将iso镜像转换成虚拟机容器镜像的工具,使得镜像转换非常复杂。
发明内容
本发明要解决的技术问题是针对现有技术的上述不足,本发明的目的一是提供一种iso镜像转换成容器镜像的方法,可以将iso镜像转换成docker镜像在云平台镜像仓中统一管理。
本发明的目的二是提供一种iso镜像转换成容器镜像的设备。
为了实现上述目的一,本发明提供一种iso镜像转换成容器镜像的方法,包括:
步骤1:创建kubevirt虚拟机规格模板,该模板可以修改虚拟机镜像,用于创建不同操作系统的虚拟机;
步骤2:提供http文件服务器,提供iso文件上传接口,iso镜像上传后修改镜像名为image.iso,所述http文件服务器提供文件下载接口;
步骤3:接收用户上传的iso镜像后,通过步骤1中的虚拟机规格模板创建虚拟机;
步骤4:运行步骤3创建的虚拟机,虚拟机运行后生成虚拟机实例,所述虚拟机实例从挂载的iso镜像cdrom启动,进入安装系统步骤;
步骤5:通过vnc客户端连接虚拟机,用户通过vnc控制安装操作系统,所述vnc客户端使用kuebvirt适配的novnc组件;
系统安装完成后将虚拟机关机,系统安装后系统盘挂载目录下会生成一个disk.img文件,所述disk.img文件的文件名是固定的,此文件为虚拟机镜像raw格式的镜像;
步骤6:找到系统盘挂载路径的disk.img文件,通过qemu命令将raw格式的镜像转换成qcow2压缩镜像:qemu-img convert-f raw-O qcow2 disk.img disk.qcow2;
步骤7:通过kubevirt提供的镜像转换基础镜像container-disk-v1alpha将步骤6生成的qcow2镜像转换成docker镜像,生成Dockerfile文件;
通过docker build命令生成docker镜像;
步骤8:将docker镜像上传镜像仓。
作为进一步地改进,所述虚拟机规格模板需满足最小的虚拟机系统的运行要求。
进一步地,所述运行要求包括:数据卷DataVolume是由容器化数据导入器CDI创建的。
进一步地,所述运行要求还包括:通过数据卷模板DataVolumeTemplates创建两个pvc磁盘分区,一个磁盘分区为cdrom,另一个磁盘分区为系统盘分区。
进一步地,cdrom磁盘挂载镜像文件pvc,镜像来源于http文件服务器,所述系统盘分区空挂载,干净的磁盘用于安装操作系统。
进一步地,所述虚拟机规格模板使用hostpath存储类方式,所述hostpath存储类提供动态分配存储空间的功能。
进一步地,所述运行要求还包括:系统盘大小需要满足系统运行的最小要求,内存大小需要满足系统运行的最小要求。
进一步地,系统盘为50G,内存为8G。
进一步地,还包括步骤9:删除虚拟机,保留虚拟机模板用于下次镜像转换,删除导入的本地iso镜像,并删除DV创建的的本地存储目录。
为了实现上述目的二,本发明提供一种电子设备,所述设备包括处理器以及存储器:
所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;
所述处理器用于根据所述程序代码中的指令执行上述的iso镜像转换成容器镜像的方法。
有益效果
本发明与现有技术相比,具有的优点为:
通过本发明,用户可以将任意满足虚拟机创建的操作系统镜像转换成docker镜像,在平台内统一管理,避免两套镜像管理方式,减少维护成本,生成的镜像可以用于新的虚拟机创建。
附图说明
图1为本发明的工作流程图。
具体实施方式
下面结合附图中的具体实施例对本发明做进一步的说明。
参阅图1,一种iso镜像转换成容器镜像的方法,包括:
步骤1:创建kubevirt虚拟机规格模板,该模板可以修改虚拟机镜像,用于创建不同操作系统的虚拟机;
步骤2:提供http文件服务器,提供iso文件上传接口,iso镜像上传后修改镜像名为image.iso,http文件服务器提供文件下载接口,如:http://fileserver:8000/img.iso;
步骤3:接收用户上传的iso镜像后,通过步骤1中的虚拟机规格模板创建虚拟机;
步骤4:运行步骤3创建的虚拟机,虚拟机运行后生成虚拟机实例,虚拟机实例从挂载的iso镜像cdrom启动,进入安装系统步骤;
步骤5:通过vnc客户端连接虚拟机,用户通过vnc控制安装操作系统,vnc客户端使用kuebvirt适配的novnc组件,VNC(Virtual Network Console)是虚拟网络控制台的缩写,是一款优秀的远程控制工具软件,由著名AT&T的欧洲研究实验室开发的,VNC是在基于UNIX和Linux操作系统的免费的开源软件。novnc:noVNC是一个HTML5 VNC客户端,采用HTML5WebSockets,Canvas和JavaScript实现,noVNC被普遍用在各大云计算、虚拟机控制面板中;
系统安装完成后将虚拟机关机,系统安装后系统盘挂载目录下会生成一个disk.img文件,disk.img文件的文件名是固定的,此文件为虚拟机镜像raw格式的镜像;
步骤6:找到系统盘挂载路径的disk.img文件,通过qemu命令将raw格式的镜像转换成qcow2压缩镜像:qemu-img convert-f raw-O qcow2 disk.img disk.qcow2;
步骤7:通过kubevirt提供的镜像转换基础镜像container-disk-v1alpha将步骤6生成的qcow2镜像转换成docker镜像,生成Dockerfile文件:
[root@node1~]#cat Dockerfile
FROM kubevirt/container-disk-v1alpha:latest
ADD./disk.qcow2/disk;
通过docker build命令生成docker镜像;
docker build-t vmimage:v1;
步骤8:将docker镜像上传镜像仓;
步骤9:删除虚拟机,保留虚拟机模板用于下次镜像转换,删除导入的本地iso镜像,并删除DV创建的的本地存储目录。
虚拟机规格模板需满足最小的虚拟机系统的运行要求:
1、数据卷DataVolume是由容器化数据导入器CDI(Containerized DataImporter)创建的,CDI是一种用于将镜像导入pvc持久化数据存储的组件,而DataVolumeTemplates(数据卷模板)是kubevirt虚拟机规格内置的一种在虚拟机生命周期内管理pvc的方法,类似于k8s中的volumeClaimTemplates。
2、通过数据卷模板DataVolumeTemplates创建两个pvc磁盘分区,一个磁盘分区为cdrom,另一个磁盘分区为系统盘分区。cdrom磁盘挂载镜像文件pvc,镜像来源于http文件服务器,系统盘分区空挂载,干净的磁盘用于安装操作系统。虚拟机规格模板使用hostpath存储类方式,hostpath存储类提供动态分配存储空间的功能,如rancher/local-path。
3、系统盘大小需要满足系统运行的最小要求,内存大小需要满足系统运行的最小要求。在本实施例中,系统盘为50G,内存为8G。
步骤1中创建kubevirt虚拟机规格模板的过程如下:
Figure BDA0003400097630000061
Figure BDA0003400097630000071
Figure BDA0003400097630000081
Figure BDA0003400097630000091
一种电子设备,所述设备包括处理器以及存储器:
所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;
所述处理器用于根据所述程序代码中的指令执行上述的iso镜像转换成容器镜像的方法。
以上仅是本发明的优选实施方式,应当指出对于本领域的技术人员来说,在不脱离本发明结构的前提下,还可以作出若干变形和改进,这些都不会影响本发明实施的效果和专利的实用性。

Claims (10)

1.一种iso镜像转换成容器镜像的方法,其特征在于,包括:
步骤1:创建kubevirt虚拟机规格模板,该模板可以修改虚拟机镜像,用于创建不同操作系统的虚拟机;
步骤2:提供http文件服务器,提供iso文件上传接口,iso镜像上传后修改镜像名为image.iso,所述http文件服务器提供文件下载接口;
步骤3:接收用户上传的iso镜像后,通过步骤1中的虚拟机规格模板创建虚拟机;
步骤4:运行步骤3创建的虚拟机,虚拟机运行后生成虚拟机实例,所述虚拟机实例从挂载的iso镜像cdrom启动,进入安装系统步骤;
步骤5:通过vnc客户端连接虚拟机,用户通过vnc控制安装操作系统,所述vnc客户端使用kuebvirt适配的novnc组件;
系统安装完成后将虚拟机关机,系统安装后系统盘挂载目录下会生成一个disk.img文件,所述disk.img文件的文件名是固定的,此文件为虚拟机镜像raw格式的镜像;
步骤6:找到系统盘挂载路径的disk.img文件,通过qemu命令将raw格式的镜像转换成qcow2压缩镜像:qemu-img convert-f raw-O qcow2 disk.img disk.qcow2;
步骤7:通过kubevirt提供的镜像转换基础镜像container-disk-v1alpha将步骤6生成的qcow2镜像转换成docker镜像,生成Dockerfile文件;
通过docker build命令生成docker镜像;
步骤8:将docker镜像上传镜像仓。
2.根据权利要求1所述的一种iso镜像转换成容器镜像的方法,其特征在于,所述虚拟机规格模板需满足最小的虚拟机系统的运行要求。
3.根据权利要求2所述的一种iso镜像转换成容器镜像的方法,其特征在于,所述运行要求包括:数据卷DataVolume是由容器化数据导入器CDI创建的。
4.根据权利要求2所述的一种iso镜像转换成容器镜像的方法,其特征在于,所述运行要求还包括:通过数据卷模板DataVolumeTemplates创建两个pvc磁盘分区,一个磁盘分区为cdrom,另一个磁盘分区为系统盘分区。
5.根据权利要求4所述的一种iso镜像转换成容器镜像的方法,其特征在于,cdrom磁盘挂载镜像文件pvc,镜像来源于http文件服务器,所述系统盘分区空挂载,干净的磁盘用于安装操作系统。
6.根据权利要求4所述的一种iso镜像转换成容器镜像的方法,其特征在于,所述虚拟机规格模板使用hostpath存储类方式,所述hostpath存储类提供动态分配存储空间的功能。
7.根据权利要求2所述的一种iso镜像转换成容器镜像的方法,其特征在于,所述运行要求还包括:系统盘大小需要满足系统运行的最小要求,内存大小需要满足系统运行的最小要求。
8.根据权利要求7所述的一种iso镜像转换成容器镜像的方法,其特征在于,系统盘为50G,内存为8G。
9.根据权利要求1所述的一种iso镜像转换成容器镜像的方法,其特征在于,还包括步骤9:删除虚拟机,保留虚拟机模板用于下次镜像转换,删除导入的本地iso镜像,并删除DV创建的的本地存储目录。
10.一种电子设备,其特征在于,所述设备包括处理器以及存储器:
所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;
所述处理器用于根据所述程序代码中的指令执行权利要求1-9任一项所述的iso镜像转换成容器镜像的方法。
CN202111493408.3A 2021-12-08 2021-12-08 一种iso镜像转换成容器镜像的方法及设备 Pending CN114296864A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111493408.3A CN114296864A (zh) 2021-12-08 2021-12-08 一种iso镜像转换成容器镜像的方法及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111493408.3A CN114296864A (zh) 2021-12-08 2021-12-08 一种iso镜像转换成容器镜像的方法及设备

Publications (1)

Publication Number Publication Date
CN114296864A true CN114296864A (zh) 2022-04-08

Family

ID=80965953

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111493408.3A Pending CN114296864A (zh) 2021-12-08 2021-12-08 一种iso镜像转换成容器镜像的方法及设备

Country Status (1)

Country Link
CN (1) CN114296864A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114968092A (zh) * 2022-04-28 2022-08-30 江苏安超云软件有限公司 容器平台下基于qcow2技术的存储空间动态供应的方法及应用
CN117873506A (zh) * 2024-03-12 2024-04-12 山东乾云启创信息科技股份有限公司 一种基于voi的镜像运行实现方法及系统

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114968092A (zh) * 2022-04-28 2022-08-30 江苏安超云软件有限公司 容器平台下基于qcow2技术的存储空间动态供应的方法及应用
CN114968092B (zh) * 2022-04-28 2023-10-17 安超云软件有限公司 容器平台下基于qcow2技术的存储空间动态供应的方法及应用
CN117873506A (zh) * 2024-03-12 2024-04-12 山东乾云启创信息科技股份有限公司 一种基于voi的镜像运行实现方法及系统
CN117873506B (zh) * 2024-03-12 2024-06-11 山东乾云启创信息科技股份有限公司 一种基于voi的镜像运行实现方法及系统

Similar Documents

Publication Publication Date Title
CN111741134B (zh) 一种网络靶场大规模场景中虚拟机快速构建系统与方法
CN109525624B (zh) 一种容器登录方法、装置及存储介质
CN114296864A (zh) 一种iso镜像转换成容器镜像的方法及设备
US20100287280A1 (en) System and method for cloud computing based on multiple providers
CN112035217A (zh) 集群的处理方法、装置、电子设备及计算机可读存储介质
CN114125028A (zh) 微应用的运行方法、装置、设备、存储介质及程序产品
CN114791856B (zh) 基于K8s的分布式训练任务处理方法、相关设备及介质
CN112398914A (zh) 基于Kubernetes容器集群的云渲染平台
CN101699403A (zh) 一种图形化安装分布式系统的方法
CN112468545A (zh) 一种云主机创建方法、装置、系统、设备及可读存储介质
CN102148839B (zh) 一种管理ftp服务器的方法、装置及系统
CN113568758A (zh) Gpu资源池化方法、系统、设备及计算机可读存储介质
CN111026406A (zh) 应用运行方法、设备和计算机可读存储介质
CN113204368A (zh) 应用程序处理方法、服务器及存储介质
CN107861761B (zh) 一种物理主机的启动方法及系统
CN114285698B (zh) 一种嵌入式操作系统上基于K3s的DDS通信中间件的构建方法
CN115016862A (zh) 基于Kubernetes集群的软件启动方法、装置、服务器及存储介质
CN112910956B (zh) 一种资源创建方法、装置及电子设备
CN114281444A (zh) 一种实施云桌面客户端的布置方法
CN113641641A (zh) 文件存储服务的切换方法、切换系统、设备及存储介质
CN114281442A (zh) 一种云桌面客户端及其方法
CN113992622A (zh) 一种基于统一模型的多模板聚合消息通知发送系统及方法
Padilla Self-adaptation for Internet of things applications
CN110971665A (zh) 一种对接多类型存储的管理方法、系统、设备及存储介质
CN106919405A (zh) 一种客户端的初始化方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination