基于Docker的Linux在线实验环境
李慧春, 王成喜, 朱晓旭
【摘 要】摘 要: 针对Linux系统环境搭建对初学者来说是比较困难的问题,找到了一种基于Docker的Linux在线实验环境搭建方法。在一台服务器上利用Docker技术把Linux环境打包在镜像里,学生机通过浏览器访问服务器的端口就可以连接到Linux的桌面,快速进入Linux实验情境中。由于Docker技术的引入,该方法能够允许多台学生机同时实验,互不影响。 【期刊名称】实验技术与管理 【年(卷),期】2024(036)003 【总页数】4
【关键词】关键词: Docker; 在线实验环境;Linux;实验教学 基金项目:吉林大学实验技术研究项目(2017037)
目前,高校的Linux系统课程主要依赖于“授课为主、实验为辅”的教学方式[1]。在实验环节,学生需要在真实的Linux环境下才能够开展实验。本文探索了一种在Windows服务器上搭建的基于Docker的Linux在线实验环境。该实验环境可以直接通过web浏览器去访问。只要有账号和密码就可以登录并开展实验。学生如果有兴趣在个人计算机上搭建使用也是很方便的。
1 研究背景
Linux是一个优秀的、日益成熟的操作系统,现在拥有大量的用户。由于其安全、高效、功能强大,具有良好的兼容性和可移植性,已经被越来越多的人了解和使用[2]。许多互联网公司、网络服务提供商、系统集成公司,都采用Linux作为其服务器操作系统[3]。近年来,随着物联网、云计算及大数据等技术的快速发展,社
会对Linux人才的需求不断增加。“Linux操作系统”课程是高校计算机相关专业的必修课,学生提前接触Linux环境,能够为以后的就业打下良好的基础[4]。 当前计算机,主流设备上安装的是Windows操作系统,建立Linux环境主要有以下几种方式[5]。
(1) 双系统方式。Windows与Linux同时安装在一台计算机上,开机时可以选择进入哪个系统。该方式的优点是能够在较快时间内进入系统,学生可以直观地体验到真实的Linux,缺点是在实验室条件下硬盘保护卡无法对Linux自动复原,手动恢复需要时间长,增加了实验员维护工作量。学生如果想在自己的笔记本计算机上本地安装双系统难度比较大。
(2) 虚拟机方式。在Windows系统里安装一个虚拟机,如Virtual PC,VMware,然后把Linux系统安装在虚拟机上。该方式的优点是在实验室条件下可以使用硬盘保护功能,不影响Windows运行,机房维护轻松。缺点是每个虚拟机都需运行一个完整的操作系统,至少需要占用5G的磁盘空间[6],而且虚拟机启动慢。学生本地安装虚拟机同样有很大难度。
(3) 集中服务器方式。需要建立一台Linux操作系统的服务器,学生机通过网络远程登录到Linux服务器进行访问。如果要实现Linux系统以图形界面形式显示在学生机上,可以使用VNC技术,或者安装C/S架构的软件,常见的软件有Xpra、Cygwin等。
(4) DRBL(diskless remote boot in Linux)方式。在一台Linux服务器上安装DRBL软件,将Linux系统提供给大量的终端操作与使用。该方法只适用于实验室环境,并且要求所有计算机终端的主板和网卡都支持PXE网络启动。
(5) Bash/WSL[7]。WSL的全称是Windows Subsystem for Linux,Bash是一
个Linux Shell。它是Windows 10新推出的一项功能,是Windows中只带指令运行,没有图形界面的Linux系统。它可以在Windows 10的开始菜单里通过“Bash on Ubuntu on Windows”入口直接启动。
本文所介绍的是属于集中服务器方式。服务器是利用泰晓科技于2017年开发的Cloud-Lab搭建的[8]。Cloud-Lab是基于Docker技术的开源实验环境,只需要简单的几步命令就可以安装成功。由于Cloud-Lab开发时引入了noVNC技术,所以学生机需要使用支持HTML5的浏览器进入实验环境。当前支持HTML5的浏览器有Chrome 8.0+、Firefox 3.6+、IE 9.0+等。
2 Docker技术简介
Docker是基于go语言实现的开源的容器引擎,诞生于2013年,最初发起者是dotCloud公司[9]。Docker通过将运行环境和应用程序打包到一起,来解决部署时的环境依赖问题,真正做到跨平台的开发和使用。借助于LXC(Linux container)内核虚拟化技术和AUFS(advanced multi-layered unification filesystem)分层镜像方法,Docker可以在几乎没有额外开销的前提下提供资源隔离的应用运行环境,并且具有启动速度快和资源占用少的优点。一台普通服务器能运行数百个容器(container)[10]。
Docker具有三大核心概念:镜像(image)、容器(container)和仓库(repository)。镜像是基于联合(union)文件系统的一种层式的结构,由一系列指令一步一步构建出来的。一个镜像可以是一个完整的CentOS操作系统环境,称为CentOS镜像。也可以在CentOS基础上安装MySQL的应用程序,制作成MySQL镜像。容器是从镜像创建的运行实例,它可以被启动、停止和删除。所创建的每一个容器都是相互隔离、互不可见的,可以保证平台的安全性。容器是
基于Docker的Linux在线实验环境



