介绍一个我觉得非常方便实用的工具吧,就是Ubuntu推出的一款轻量级虚拟工具 multipass
做为程序员,一定有很多时候我们需要与Linux服务系统打交道,很多时候我们需要虚拟一个Linux做一些练习,学习或预演部署等,这种时候我们就都会依赖虚拟机来虚拟一个Linux来做这些事。
以往我用的最多的是Oralce的一款开源的虚拟机工具Virtualbox,想必大家也应该知道或非常熟悉。很多时候学习就会用Oralce Virtualbox虚拟出三个Linux来做学习与实践。
类似的工具,还有其它一些,比如vmware,parallels等,这些都是收费软件。
这些工具,在虚拟Linux时,都有一个不太好的缺点,那就是:
虚拟Linux服务器需要安装这个过程,非常麻烦
所以,是否有一种能快速虚拟出一个Linux系统,使用完就废弃掉,这样是不是更方便实用?
是的,这就是我最近发现的Multipass这个轻量级的虚拟工具。它能做到快速的虚拟与删除,节省掉了安装系统的时间。
Multipass是Ubuntu推出的一个轻量级的虚拟软件,可以用它仅用一行命令就虚拟出一个Ubuntu服务操作系统。非常简单方便,适合你做测试,学习等。
与Virtualbox类似的虚拟工具相比起来,虚拟一个系统仅需一个命令,几秒的时间而已,不需要选择介质,安装等这个非常耗费时间的过程。
在这里简单演示如何使用它:
查找multipass支持的镜像
Image Aliases Version Description
18.04 bionic 20220921 Ubuntu 18.04 LTS
20.04 focal 20220920 Ubuntu 20.04 LTS
22.04 jammy,lts 20220923 Ubuntu 22.04 LTS
anbox-cloud-appliance latest Anbox Cloud Appliance
charm-dev latest A development and testing environment for charmers
docker latest A Docker environment with Portainer and related tools
jellyfin latest Jellyfin is a Free Software Media System that puts you in control of managing and streaming your media.
minikube latest minikube is local Kubernetes从上面的列表中可以看到,支持的都是Ubuntu这个发行版本的镜像
虚拟一个22.04的系统
# 虚拟一个22.04版本,名称为 test-22-04的系统
multipass launch 22.04 --name test-22-04 -m 2G -d 20G -c 2如果不是第一次需要下载镜像,基本上几秒的时间就完成了。(如果用Virtualbox,安装的过程非常久,非常麻烦)
22.04:指定虚拟的镜像的来源,我们选择22.04 LTS版本-name test-22-4: 虚拟系统的名称-m 2G: 可选,指定内存大小,默认为1G-d 20G: 可选,指定硬盘大小,默认为5G-c 2:可选,指定占用的CPU数,默认为1我们可以确认刚刚虚拟出来的这个系统是否存在
#查找已存在的虚拟系统
multipass list
#结果是
Name State IPv4 Image
test-22-04 Running 192.168.64.50 Ubuntu 22.04 LTS可以看到,我们有了一个名称为test-22-04的虚拟系统,并且有它独立的IPV4地址,虚拟机与虚拟机,及以主机之间都可以通过IP互通。这有利于我们在部署一些集群时的需求。
SSH到虚拟系统
下一步,你就可以随意的通过SSH访问这个虚拟系统
multipass shell test-22-04使用multipass shell + 名称就可以SSH到这个系统了。
这是一个功能完整的服务版本的Ubuntu,你可以在上面做任何Linux能做的事情。
传输文件
当你需要从本机传输文件到虚拟系统,或从虚拟系统传输文件到本机时,也非常方便
#使用transfer命令就可以任意传输文件了
multipass transfer ~/file.zip test-22-04:/tmp删除系统
如果不需要了,那就把这个系统删除掉吧
#停止系统
multipass stop test-22-04
#删除系统
multipass delete test-22-4
#清理
multipass purge是不是非常简单方便?
简单说下它的优点与缺点吧:
优点:
缺点
如果你希望基于Linux快速学习或预部署,或者你本身就是Debian/Ubuntu的使用者(比如我,服务器Linux都是选择Debian),那这个工具非常有用,可以完全取代Virtualbox。
不过如果你是Redhat/CentOS系的使用者,或想要的是GUI的Linux,那这个就不太适合你了。我暂时还未发现Redhat系有类似的工具。