论文部分内容阅读
摘要:21世纪,以ABC(A:人工智能,B:大数据,C:云计算)形成的新业态,新体系,新技术为代表的新互联网的运行生态模式,使得中小企业上云已是常态化事件。其中云原生技术,容器技术的出现使得DEVOPS出现了新的解决方案,为运维和开发之间的新建了一座桥梁,从此其快速的部署方式为上层用户服务。该论文是以云计算技术中的容器技术为研究对象,研究分析了容器在目前大的互联网背景下的应用特点以及与传统虚拟化技术的主要区别。
关键词:容器技术;传统虚拟化技术;研究分析
1 容器技术概述
随着新技术不断冲击,不断迭代更新,使得云计算技术已经成为现在以及未来技术当中的新基石,并且已经纳入国家的新的基础设施建设当中。面对中小企业上云的不断增长,面对庞大的市场内在需求,我国的云计算产业也在蓬勃发展,其云原生的Docker容器技术也在云服务平台中被大量使用[1-2]。
容器技术是继传统虚拟化技术(VM虚拟机为方案)发展之后的一种新型虚拟化技术解决方案,是云服务模式的一种新的PAAS。容器技术是一种轻量级内核的操作系统层虚拟化技术,进程资源的隔离和管理控制技术的解决方案主要是通过NameSpace和Cgroup实现。
容器之间资源独立,互相隔离, 主要是基于细粒度的资源隔离为基础,将业务资源对底层资源的利用率得到最大值。容器技术解决方案主要应用场景之一微服务领域,为微服务提供了良好的运行环境,大大提升了对微服务的运维管理效率,其中容器技术的主流代表Docker是容器技术解决方案典型的代表,相比較以虚拟机为单位的解决方案的技术更趋向于标准化和归一化。
代表性方案Docker技术,助推了容器技术的发展,Docker最初是DotCloud公司的内部发起的一个项目,主要是做云服务的PAAS层服务,该服务当时云服务领域当中的一次革新,使得云服务解决方案有了新鲜的血液,底层资源的利用率突破了新高。DOCKER的核心思想是利用扩展的LINUX容器方案实现一种轻量化的虚拟化解决方案,实现将服务器上层的服务(app)打包、封装、集成、标准化供用户使用,使得服务的部署变得简单化和智能化,继而解决和服务于开发人员与运维人员[3-4]。
Docker是C/S的架构,Docker客户端DOCKER Daemon(守护进程)进行交互,DAEMON负责构架、运行和发布容器。客户端和服务端运行在同一个系统中,也可以连接远程的DAEMON,如图1所示(图来自于Docker官网)。
Docker作为一个虚拟环境容器服务,其实现的思想主要为解决DEVOPS(开发 运维)之间的故事,Docker可以将开发人员的代码、运行环境、配置文件共同打包并发布,并且跨平台运行。实现运维和开发的一键化部署,到处运行。
2 Docker容器技术主要包含三要素:镜像,容器和仓库
镜像(IMAGE)是一个只读镜像模板文件,是基于分层文件系统的思想实现[5]。Dockerfile指令定义了Docker镜像的文件内容。Docker镜像的定义是从底层的基础镜像(BaseImage)开始,逐层开展的。镜像构建实际上就是安装、配置和运行的过程,镜像的实现机制主要基于分层文件系统的原理机制。Docker镜像基于UNIONFS把以上过程进行分层(Layer)存储,便于镜像的更新,只需更新变化部分的内容。
容器是一个镜像运行中的实例,是动态的中的镜像,容器由镜像创建,运行用户指定的指令或者Dockerfile定义的运行指令,可以将其启动、停止、删除,而这些容器是相互隔离的(独立的进程),互不可见。
仓库:Docker仓库是Docker镜像存储的地方,称为Docker镜像仓库,镜像仓库注册服务器存放着多个仓库,每个仓库中又包含了多个镜像,每个镜像有不同的标签(Tag),镜像通过标签识别版本。Docker仓库分为公有仓库和私有仓库。最大的公有仓库是DockerHub,Docker hub存放了数量庞大的镜像供用户下载。由于DOCKER HUB的服务器在国外,访问、下载比较慢,因此国内多家公司将Docker HUB中的镜像完全复制了一份,由此国内用户获取镜像速度加快。比如我们经常用到的国内镜像仓库:阿里云、网易云等。
Docker三要素三者之间的关系:OCKER镜像是静态的文件,容器是运行中的镜像,仓库是存储镜像的地方。
3 容器编排
在多主机的集群环境中对容器的生命周期管理,就需要容器编排工具,其Docker Compose是Docker容器进行编排的工具,定义和运行多个容器的应用,可以以一条命令启动多个容器。采用Docker compose工具代替了shell脚本的集中化管理多个容器的工具。
Docker Compose是Docker官方旗下的一个开源项目,可以批量化管理多个容器的载体平台,管理的机制是将任务代码写入到一个yaml文件当中,该文件中的所有容器通过服务Services来定义,然后使用Docker -Compose脚本来启动、停止、重启应用和应用中的服务以及所有依赖服务的容器,适用于运行多容器的场景。
4 Docker的优势
Docker与传统虚拟化技术对比:
Docker作为云计算当中的一种轻量化的虚拟化解决方案,与KVM、VMwareVSphere等主流虚拟化技术在实现原理方面有很大的不同。传统虚拟化解决方案的实现是以虚拟机(VM)为单位,其技术可以直接作用于裸金属层面,也可以寄居在宿主机的操作系统层面,也可以集成在内核态当中,而容器Docker技术的实现是直接安装在宿主机的操作系统层面,与宿主机共享内核,并且最终实现的服务是以打包、集成、封装好的镜像文件,镜像文件为用户提供所需的进程服务,针对性很强,可实施性很简单,为互联网界的部署,运维和开发开通了一条绿色通道。下表展示了传统虚拟化解决方案与容器技术Docker的异同。 下表展示了传统虚拟化技术与容器技术的架构对比。
5 容器应用场景
微服务部署场景,容器技术将服务器上层的服务打包、继承和封装为镜像文件,使得服务的部署更加的趋向于细致化和易用化,和宿主机共享内核,运行在宿主机的操作系统层面,容器服务更接近于云原生,基于容器技术的云服务更适合于web的微服务部署,以及IT界当中的微服务部署场景;持续集成和持续部署的场景,容器卷的技术可以使得的集群中的容器数据持续集成到本地的宿主机中,使得互联网界快速部署环境、快速上线的业务提供了新的血液。
案例:
由于Docker容器技术使得服务的运行可以在跨平台上运行的一致性,可移植性以及维护管理的可实施性,使得云架构的业务更偏向于Docker的微服务部署。为了体现Docker容器技术的强大、方便以及轻量化的部署特性,选取以开源的博客网站界主流的WORDPRESS部署为例进行对比研究:
本实验属于嵌套虚拟化,在个人宿主机的Windows系统中采用VMware个人虚拟化软件搭建虚拟机,虚拟机的镜像使用的是红帽的社区版进行实验探究。
基于DOCKER Compose一键启动的个人博客网站的实现:
1)环境部署:CentOS 7版本。配置网络、本地yum源、关闭防火墙和SELINUX配置。
2)安装DOCKER平台。
卸载旧版本:
注意:执行成功后,bash解析器报告没有安装包提示说明未安装Docker平台。
安装DOCKER-CE如下图所示:
报错解决方案:
执行图4所示命令:
6 基于传统的虚拟化技术部署WordPress
初始化环境配置:配置本地yum源,防火墙设置,selinux和网络的配置。
数据库配置,PHP配置,WordPress包的配置。
7 实验分析
容器的轻量化、细粒度资源隔离技术、标准化、可移植性等特征使得从虚拟机VM的部署场景转型到以容器化云服务部署的场景,为运维人員以及开发人员节省了操作层面的复杂,使得部署界当中任务变得易执行。
基于Docker的微服务部署,重构了互联网界服务部署的过程,步骤流程简化,配置无繁琐,特别是Docker-Compose的使用,让部署流程和配置突破了传统的数据库配置,包管理等,使得多容器的管理变得轻松和高效,同时运维操作变得简单化,使得服务的快速部署以及上线开通了绿色通道。节约了人力资源、物理资源以及成本资源,让IT走向更加节能、更加环保和更加绿色的时代。
参考文献:
[1] 吕彬,徐国坤.Docker容器安全性分析与增强方案研究[J].保密科学技术,2021(1):15-22.
[2] 刘国乐,余彦峰.浅析Docker容器技术[J].保密科学技术,2017(10):26-30.
[3] 鞠瑞.Docker容器热迁移方案研究[D].武汉:武汉大学,2017.
[4] 荆文军.虚拟容器架构在Ceph中应用[J].现代信息科技,2020,4(20):128-130.
[5] 刘昱良,何璐.基于Docker技术的容器云平台浅析[J].大众科技,2021,23(1):15-17,20.
【通联编辑:谢媛媛】
关键词:容器技术;传统虚拟化技术;研究分析
1 容器技术概述
随着新技术不断冲击,不断迭代更新,使得云计算技术已经成为现在以及未来技术当中的新基石,并且已经纳入国家的新的基础设施建设当中。面对中小企业上云的不断增长,面对庞大的市场内在需求,我国的云计算产业也在蓬勃发展,其云原生的Docker容器技术也在云服务平台中被大量使用[1-2]。
容器技术是继传统虚拟化技术(VM虚拟机为方案)发展之后的一种新型虚拟化技术解决方案,是云服务模式的一种新的PAAS。容器技术是一种轻量级内核的操作系统层虚拟化技术,进程资源的隔离和管理控制技术的解决方案主要是通过NameSpace和Cgroup实现。
容器之间资源独立,互相隔离, 主要是基于细粒度的资源隔离为基础,将业务资源对底层资源的利用率得到最大值。容器技术解决方案主要应用场景之一微服务领域,为微服务提供了良好的运行环境,大大提升了对微服务的运维管理效率,其中容器技术的主流代表Docker是容器技术解决方案典型的代表,相比較以虚拟机为单位的解决方案的技术更趋向于标准化和归一化。
代表性方案Docker技术,助推了容器技术的发展,Docker最初是DotCloud公司的内部发起的一个项目,主要是做云服务的PAAS层服务,该服务当时云服务领域当中的一次革新,使得云服务解决方案有了新鲜的血液,底层资源的利用率突破了新高。DOCKER的核心思想是利用扩展的LINUX容器方案实现一种轻量化的虚拟化解决方案,实现将服务器上层的服务(app)打包、封装、集成、标准化供用户使用,使得服务的部署变得简单化和智能化,继而解决和服务于开发人员与运维人员[3-4]。
Docker是C/S的架构,Docker客户端DOCKER Daemon(守护进程)进行交互,DAEMON负责构架、运行和发布容器。客户端和服务端运行在同一个系统中,也可以连接远程的DAEMON,如图1所示(图来自于Docker官网)。
Docker作为一个虚拟环境容器服务,其实现的思想主要为解决DEVOPS(开发 运维)之间的故事,Docker可以将开发人员的代码、运行环境、配置文件共同打包并发布,并且跨平台运行。实现运维和开发的一键化部署,到处运行。
2 Docker容器技术主要包含三要素:镜像,容器和仓库
镜像(IMAGE)是一个只读镜像模板文件,是基于分层文件系统的思想实现[5]。Dockerfile指令定义了Docker镜像的文件内容。Docker镜像的定义是从底层的基础镜像(BaseImage)开始,逐层开展的。镜像构建实际上就是安装、配置和运行的过程,镜像的实现机制主要基于分层文件系统的原理机制。Docker镜像基于UNIONFS把以上过程进行分层(Layer)存储,便于镜像的更新,只需更新变化部分的内容。
容器是一个镜像运行中的实例,是动态的中的镜像,容器由镜像创建,运行用户指定的指令或者Dockerfile定义的运行指令,可以将其启动、停止、删除,而这些容器是相互隔离的(独立的进程),互不可见。
仓库:Docker仓库是Docker镜像存储的地方,称为Docker镜像仓库,镜像仓库注册服务器存放着多个仓库,每个仓库中又包含了多个镜像,每个镜像有不同的标签(Tag),镜像通过标签识别版本。Docker仓库分为公有仓库和私有仓库。最大的公有仓库是DockerHub,Docker hub存放了数量庞大的镜像供用户下载。由于DOCKER HUB的服务器在国外,访问、下载比较慢,因此国内多家公司将Docker HUB中的镜像完全复制了一份,由此国内用户获取镜像速度加快。比如我们经常用到的国内镜像仓库:阿里云、网易云等。
Docker三要素三者之间的关系:OCKER镜像是静态的文件,容器是运行中的镜像,仓库是存储镜像的地方。
3 容器编排
在多主机的集群环境中对容器的生命周期管理,就需要容器编排工具,其Docker Compose是Docker容器进行编排的工具,定义和运行多个容器的应用,可以以一条命令启动多个容器。采用Docker compose工具代替了shell脚本的集中化管理多个容器的工具。
Docker Compose是Docker官方旗下的一个开源项目,可以批量化管理多个容器的载体平台,管理的机制是将任务代码写入到一个yaml文件当中,该文件中的所有容器通过服务Services来定义,然后使用Docker -Compose脚本来启动、停止、重启应用和应用中的服务以及所有依赖服务的容器,适用于运行多容器的场景。
4 Docker的优势
Docker与传统虚拟化技术对比:
Docker作为云计算当中的一种轻量化的虚拟化解决方案,与KVM、VMwareVSphere等主流虚拟化技术在实现原理方面有很大的不同。传统虚拟化解决方案的实现是以虚拟机(VM)为单位,其技术可以直接作用于裸金属层面,也可以寄居在宿主机的操作系统层面,也可以集成在内核态当中,而容器Docker技术的实现是直接安装在宿主机的操作系统层面,与宿主机共享内核,并且最终实现的服务是以打包、集成、封装好的镜像文件,镜像文件为用户提供所需的进程服务,针对性很强,可实施性很简单,为互联网界的部署,运维和开发开通了一条绿色通道。下表展示了传统虚拟化解决方案与容器技术Docker的异同。 下表展示了传统虚拟化技术与容器技术的架构对比。
5 容器应用场景
微服务部署场景,容器技术将服务器上层的服务打包、继承和封装为镜像文件,使得服务的部署更加的趋向于细致化和易用化,和宿主机共享内核,运行在宿主机的操作系统层面,容器服务更接近于云原生,基于容器技术的云服务更适合于web的微服务部署,以及IT界当中的微服务部署场景;持续集成和持续部署的场景,容器卷的技术可以使得的集群中的容器数据持续集成到本地的宿主机中,使得互联网界快速部署环境、快速上线的业务提供了新的血液。
案例:
由于Docker容器技术使得服务的运行可以在跨平台上运行的一致性,可移植性以及维护管理的可实施性,使得云架构的业务更偏向于Docker的微服务部署。为了体现Docker容器技术的强大、方便以及轻量化的部署特性,选取以开源的博客网站界主流的WORDPRESS部署为例进行对比研究:
本实验属于嵌套虚拟化,在个人宿主机的Windows系统中采用VMware个人虚拟化软件搭建虚拟机,虚拟机的镜像使用的是红帽的社区版进行实验探究。
基于DOCKER Compose一键启动的个人博客网站的实现:
1)环境部署:CentOS 7版本。配置网络、本地yum源、关闭防火墙和SELINUX配置。
2)安装DOCKER平台。
卸载旧版本:
注意:执行成功后,bash解析器报告没有安装包提示说明未安装Docker平台。
安装DOCKER-CE如下图所示:
报错解决方案:
执行图4所示命令:
6 基于传统的虚拟化技术部署WordPress
初始化环境配置:配置本地yum源,防火墙设置,selinux和网络的配置。
数据库配置,PHP配置,WordPress包的配置。
7 实验分析
容器的轻量化、细粒度资源隔离技术、标准化、可移植性等特征使得从虚拟机VM的部署场景转型到以容器化云服务部署的场景,为运维人員以及开发人员节省了操作层面的复杂,使得部署界当中任务变得易执行。
基于Docker的微服务部署,重构了互联网界服务部署的过程,步骤流程简化,配置无繁琐,特别是Docker-Compose的使用,让部署流程和配置突破了传统的数据库配置,包管理等,使得多容器的管理变得轻松和高效,同时运维操作变得简单化,使得服务的快速部署以及上线开通了绿色通道。节约了人力资源、物理资源以及成本资源,让IT走向更加节能、更加环保和更加绿色的时代。
参考文献:
[1] 吕彬,徐国坤.Docker容器安全性分析与增强方案研究[J].保密科学技术,2021(1):15-22.
[2] 刘国乐,余彦峰.浅析Docker容器技术[J].保密科学技术,2017(10):26-30.
[3] 鞠瑞.Docker容器热迁移方案研究[D].武汉:武汉大学,2017.
[4] 荆文军.虚拟容器架构在Ceph中应用[J].现代信息科技,2020,4(20):128-130.
[5] 刘昱良,何璐.基于Docker技术的容器云平台浅析[J].大众科技,2021,23(1):15-17,20.
【通联编辑:谢媛媛】