基于Docker的课程实验平台设计以及实现探讨
2020-06-27崔艳敏
崔艳敏
摘要:随着社会的不断发展,人们对教育也越来越重视了,在现如今的大时代背景下各种新兴技术都运用到了教育中,而今天我们要讲的是基于Docker的课程实验平台设计与实现,目前高校的计算机课程实验教学中,很多老师都将PaaS平台建立在虚拟机中,而虚拟机的消耗较大且资源有所不足,本文将根据高校师生的需求并结合高校计算机资源和网络资源提出基于Docker的課程实验平台设计来支持高校计算机课程实验教学,为高校的教育事业提供一点建议。
关键词:教育;Docker;PaaS平台;课程实验平台
随着科技的不断发展云计算也已经运用到了各行各业之中,相对于传统的虚拟化技术虽然隔离性和安全性不够,但是容器技术更加的轻量化同时资源利用率较高,并且还非常容易部署,在现如今的计算机课程实验教学中很多老师都是用的PaaS平台来进行教学,虽然PaaS可以提供一个比较完善的开发环境,可以有效的节省开发部属时间,但是PaaS平台也有很多的缺陷,由于PaaS的很多基础构建都在虚拟机中的,而虚拟机就会需要消耗很多的计算机资源,进而导致资源利用率低下的问题。同时在计算机实验教学中,学生们在高校接受教育的过程中往往会学到很多需要进行实验的课程如网站开发、java编程、网页设计等,有些课程就需要在同一台主机上安装并部署虚拟机来更好的进行实验,因此学生需要的是一个更加稳定的开发环境来进行相关的实验,所以必须要将PaaS平台进行改善,实现运行环境的多样化并提高资源的利用效率,降低消耗。要做到这几点我们就需要进行镜像模块设计、资源调度设计、平台基础构建设计、控制台设计等,只要将这些模块设计完成后就能够实现基于Docker的课程实验平台,该平台将会具有Docker哦容器的创建、删除[1]、弹性伸缩、日子、监控和吃就会存储等功能。
1 设计概要
基于Docker的课程实验平台的设计主要是将实际的实验镜像托管到PaaS管理的云基础设施中。这样不仅能够预防操作系统上过多的服务软件冲突还能节省机房PC机安装的维护和同传工作。按照这种结构实现PaaS(平台即服务)和IaaS(基础设施即服务)的协同工作,同时还能达到高端开发周期,实现有效的提高计算机资源利用率的目的,并且降低了成本。课程实验平台则主要是由课程实验镜像管理模块、集群管理模块、web管理服务模块、Docker容器服务模块和资源调度模块组成的。
2 基于Docker的课程实验平台实现
2.1 Docker容器服务模块实现
Docker容器服务模块主要是给普通用户在使用课程实验平台的时候提供一个个人容器的管理服务。镜像存储的运行实例就是Docker容器,而要想启动Docker容器有两种方法:(1)处于终止状态下容器进行重新启动[2],这种方法需要用户使用命令“docker psa”来获取终止状态下的容器,同时使用命令“docker start”加速容器id启动终止状态下的容器;(2)基于镜像状态下时新建容器然后启动,这种方法需要用户通过“Docker Private Registr”下载镜像进而创建出容器再进行启动。
Docker课程实验平台的实现步骤:1.老师让学生在做实验的时候在web运行端运行“docker run”命令。2.系统会自动在本地镜像中寻找所需要的镜像,如果没有找到就需要手动在镜像库中进行下载。3.在镜像状态下创建一个容器然后启动,启动完成后给容器分配一个文件系统,同时在镜像层中挂载可读写层。4.建立桥接关系同时给容器分配IP地址,然后执行实验所需的应用程序。
2.2 课程实验镜像管理模块
在学生做实验的时候,老师要将事先准备好的系统镜像放到平台上供学生选择,让学生在创建容器时使用作为容器的初始镜像,这种系统镜像就是PaaS平台镜像。老师可以通过镜像管理模块对镜像进行创建[3]、打开、停止等操作,还能调整镜像的一些参数。
课程实验的Docker镜像有两种创建的方式:1.为既有镜像创建容器,创建完成后并安装相应的软件,然后再运行“docker commit”命令保存镜像。2.运行“docker build”命令,然后再执行一个能够自定义的Dockerfile,执行完成后就在现有的镜像基础上创建一个新的layer。以第二种方式为例,在使用第二种方式的时候,老师可以根据本节课程中所需要的软件和配置对Dockerfile文件进行自定义修改,一把是修改上一层image或者config信息。如执行“run”命令功能就是修改上一层image的内容,执行“expose”命令则是捕获当前容器暗雷的端口监听情况。具体的步骤如下:首先,老师利用Docker Client向Docker Server发送“docker build”命令,然后再将Dockerfile等内容一并通过Docker Client 发送过去,在Docker Server接受到发送请求过后再将其发送到Docker Daemon,最后就能进行解析最终镜像了。
2.3 资源调度模块
想要实现资源调度模块必须要做好以下四个步骤:请求[4]、探测、分配以及监控,只要将着四个步骤全部完成才能够实现整个平台的资源调度功能。在高校的计算机机房中,通常有很多不同的班级上不同的实验课,也就需要不同的实验环境,所以为了让不同的服务器资源平衡这个系统使用了Docker容器来作为Mesos的执行器,扶着执行所有的任务。
2.4 集群管理模块
在集群管理模块中,主要含有以下几种核心功能:通信模块功能、域名解析功能以及权限管理功能。老师在学校机房上计算机课程实验课的时候,由于有很多的学生同时进行实验就会同时用到Docker,这就需要合理的分配每个容器的IP地址了,所以老师需要在平台中利用flannel网络给各个容器分配IP地址,同时完善它的使用规则,并且使用内网IP通信进行全面完善。域名解析功能主要是使用了SkyDNS当做集群服务器,同时它具有查找不同记录的功能。
2.5 web管理服务模块
Web管理服务模块主要是能够判断在平台使用过程中的使用者角色权限,然后呈现出两个不同的门户网站,两个门户网站都是前段管理平面的管理子系统,一个是面向老师的管理门户网站,一个是面向学生的实验操作门户。平台的使用者们可以通过操作不同的门户网站进而实现对整个平台的维护和使用。
3 对比实验
本次实验的目的是对比Docker容器更KVM虚拟机两种虚拟化方式会对性能造成的影响,测试准备会设置分配足够的资源给测试的虚拟机以及容器。将Ubuntu Server设置为测试系统,然后分别安装KVM虚拟机软件以及Docker容器,配置所需的参数并加以调试,这样才能发挥最佳的性能,更好的比较出两种虚拟化方式的优劣。
由于PaaS平台完全是依托Docker容器建立的,所以也有了Docker的问题,也就是Docker的运行操作系统平台过于单一,并且相比于KVM虚拟机软件来说隔离机制也比较差导致了安全性也相对低下,同时还存在了网络管理机制薄弱和资源分配颗粒不精确的一系列问题。所以要想更好的使用Docker課程平台进行实验教学还需要我们在开发过程中进行深入的探讨,尽可能的解决这些问题,优化这个平台的功能。
4 结语
虽然云计算技术的飞速发展使得PaaS技术运用到了各行各业之中,但是由于这种技术的操作手段过于简单使得这一行的入行标准也随着下降,但是PaaS技术的简单,让开发者能够利用简单的技术操作就能为用户提供所需要的服务。综上所述,文中简单介绍了基于Docker的课程实验平台的实现原理和方法,只要构建出了平台的五大模块那么平台也就基本成型了。但是即便Docker平台构建完成也有很大的缺陷,如网络管理机制薄弱和资源分配颗粒不精确等一系列问题,希望开发人员在进行开发的时候后能够尽可能的探索各种优化方案解决这些问题,为高校的教育事业尽一份力。
参考文献:
[1]谢睿,段盛,于芳.基于Docker的课程实验平台设计与实现[J].邵阳学院学报(自然科学版),2018(4):38-42.
[2]孙曜文.基于容器的云端教学实验平台设计与实现[J].数字化用户,2019(22):137-118.
[3]陈建锋,罗家兵,黄福春.物联网虚拟仿真实验教育平台——网络和嵌入式网关层[J].实验室研究与探索,2019(12):122-126.
[4]游向东,徐圆圆,欧阳松.基于Docker的大数据AI教学与实验系统[J].软件,2018(8):192-197.