虚拟化技术在高职“新工科”专业的Linux相关课程教学中的应用

2022-03-07 19:53喻衣鑫汤东
计算机应用文摘·触控 2022年3期
关键词:镜像新工科端口

喻衣鑫 汤东

关键词:Docker虚拟化容器Linux大数据

在智能时代的今天,物、云、大、智融入生活的方方面面———从产品营销至信息服务,从日常生活应用至高端科学研究。物联网(产生数据)、云计算(承载数据)、大数据(挖掘数据)和人工智能(学习数据)相辅相成、彼此依附、相互助力,合力搭档在一起更有力量:给未来多一些可能,才能给未知多一些可能性。对于这些技术的基础学习(包括Linux操作系统基础学习、Hadoop技术学习等),都需要进行环境平台的搭建,正所谓“工欲善其事,必先利其器”。

1现有Linux相关教学存在的问题

笔者在教学过程中为不同专业、不同层次的学生进行过Linux相关课程的教学,当然也在不同的环境、场合进行了课程教学,难免会遇到诸多的问题,如学生无计算机基础、未接触过计算机以及软硬件滞后、不兼容等。

1.1专业及层次问题

在云计算技术应用专业中,教学侧重Linux的基本应用、Shell/Python脚本的自动化运维开发以及网络服务的配置管理等;在大数据技术专业中,教学侧重服务的基础应用、Python/Java在Linux上的基础应用、正则表达式以及Hadoop环境搭建配置等,为后期部署Hadoop环境并进行技术的学习打好基础;在计算机网络技术专业中,教学侧重Linux基本应用、Shell脚本、软件安装以及各种网络服务配置与管理等。

层次较低的学生侧重基础的夯实教学,层次较高的学生侧重专业引导,以期进行后续的相关专业技术应用。

1.2软硬件问题

由于学校或者个人计算机多以Windows系统为主,不同的场所安装的软件版本可能存在差异。同时,由于维护不及时,很多软件未能实现实时更新,当然还可能存在兼容性问题。

专业及层次问题、软硬件问题都为Linux相关课程教学带来了困难和挑战。

2容器技术

Docker容器技术对传统基于虚拟机的环境部署带来了挑战,其诞生于2013年,自开源后就深受关注和讨论,它的理念就是:“一次构建,到处运行”。在Docker中有两个重要概念:Image(镜像)和Container(容器),Docker可利用Image快速构建出Container,容器不需要为每个应用分配单独的操作系统,所以容器会拥有更高的资源使用效率[1]。以下是Docker深受欢迎的三个特性。

2.1轻便性

Docker可以安装在Windows/Linux环境下,并能虚拟出比VMware/VirtualBox虚拟机更轻的容器。容器中也可以安装Linux系统,主机运行容器的速度很快,在硬件资源较好的情况下运行,完全无法感知其是虚拟出的系统。

2.2灵活性

针对不同的专业通过定制Image(镜像)即可解决相关问题,并能通过启动定制的Image完成相应的专业课程教学任务。

比如在Hadoop技术的学习中,首先需要进行Java的安装,因为很多组件都是基于Java开发的。此时可以利用Docker基于基础Image创建容器来进行Java的安装,Image在被修改定制后保存成新的Image,这样就能极大的简化相关课程环境的部署。

2.3快速部署

利用传统虚拟机的形式进行实验,需要将环境搭建到虚拟机镜像中,并通过克隆/复制等方式进行移植。此方式虽然可以免去重复的搭建动作,但由于虚拟机是将整个系统运行在虚拟的硬件平台上,所以开启虚拟机的时间会随着部署虚拟机数量的增加而延长。

比如在Hadoop集群和ZooKeeper集群的部署中,只需要定制好Image。由于Docker启动时间以秒为单位,且一台计算机机能同时运行几十个容器,所以Docker在时间上的优势就凸显无疑。当出现错误时,重新部署相应镜像即可解决。当然Docker还有其他的特性以及劣势,此处不过多阐述。

3以云计算技术应用专业课程为侧重点进行Docker镜像定制

云计算技术应用专业的侧重点就是服务基础应用,接下来以Web服务器为例进行Docker的使用阐述。

3.1搜索下载apache基础系统镜像

3.2新建并启动容器,映射本地IP的80端口到容器的80端口

[root@localhost~]#ipaddr|grep"192"∥本地主机IP

inet192.168.222.206/24brd192.168.222.255scopeglobaldynamicens33

[root@localhost~]#dockerrun?it?p80:80httpd/bin/bash

root@5f5d1a5eb346:/usr/local/apache2#bin/httpd∥启动容器里httpd服务

3.3打开Web进行访问验证

通过访问本机的80端口访问容器里面所启动的Web服务,如图1所示。

3.4定制httpd的Docker镜像

为让Docker容器在后台运行,同时使容器里的Web服务正常运行,且监听80端口,可以通过Dockerfile创建镜像[2]。

3.5再次打开Web进行访问

在定制镜像的时候,CMD["/usr/local/apache2/bin/httpd","?D","FOREGROUND"]是让启动Docker容器的时候执行/usr/local/apache2/bin/httpd–DFOREGROUND命令,同时通过?d参数让容器后台运行,并映射本机88端口到容器80端口,访问结果如图2所示。

4以大数据技术专业Hadoop课程为侧重点进行举例

大数据技术专业的侧重点就是Hadoop环境搭建配置,接下来以Docker容器通过独立IP暴露给局域网的方法进行举例。

现有局域网IP网段为:192.168.1.0/24;安装有Docker的Linux环境:Linux的IP为192.168.1.250,docker的网桥网关为172.17.0.1/24。想实现快速构建N3个Hadoop系统(1主,2备)可供N个学生进行Hadoop环境搭建练习。

定制与Hadoop相关的Docker镜像———安装Java、SSH以及放入Hadoop相关文件,并进行定制操作;配置宿主机Linux系统的防火墙和SELinux,或者暫时关闭它们;编写Shell/Python脚本,实现批量创建多个以学生学号ID编号的多个容器。后续,学生按照编号规则通过SSH远程登录进行Hadoop环境的搭建练习。

最后,在局域网中的Windows宿主机的CMD中增加如下命令:route ADD 172.17.0.0 MASK 255.255.0.0 192.168.1.250。通过以上配置操作,可以实现批量、快速构建N3个Hadoop系统,让学生更快掌握后续相关的技术点,而非每次都从头再来,既能保证一次性成功,又节约了学习新知识的时间。

5结语

计算机技术更新换代越来越快、分支越来越多,为了让学生在学校学习的知识不太过于滞后,利用Docker技术的好处毋庸置疑[3]。不管是对Linux基础/服务器环境的搭建,还是对大数据Hadoop环境的部署,都较为方便、快捷。

猜你喜欢
镜像新工科端口
一种端口故障的解决方案
镜像
镜像
端口阻塞与优先级
面向新工科的Python程序设计交叉融合案例教学
新工科形势下高校二级学院毕业设计管理探索
新工科背景下大学生创新创业教育探索
初识电脑端口
镜像
镜像