介绍一个我觉得非常方便实用的工具吧,就是Ubuntu推出的一款轻量级虚拟工具 multipass
做为程序员,一定有很多时候我们需要与Linux服务系统打交道,很多时候我们需要虚拟一个Linux做一些练习,学习或预演部署等,这种时候我们就都会依赖虚拟机来虚拟一个Linux来做这些事。
以往我用的最多的是Oralce的一款开源的虚拟机工具Virtualbox,想必大家也应该知道或非常熟悉。很多时候学习就会用Oralce Virtualbox虚拟出三个Linux来做学习与实践。
类似的工具,还有其它一些,比如vmware,parallels等,这些都是收费软件。
这些工具,在虚拟Linux时,都有一个不太好的缺点,那就是:
虚拟Linux服务器需要安装这个过程,非常麻烦
所以,是否有一种能快速虚拟出一个Linux系统,使用完就废弃掉,这样是不是更方便实用?
是的,这就是我最近发现的Multipass这个轻量级的虚拟工具。它能做到快速的虚拟与删除,节省掉了安装系统的时间。
什么是Multipass
Multipass是Ubuntu推出的一个轻量级的虚拟软件,可以用它仅用一行命令就虚拟出一个Ubuntu服务操作系统。非常简单方便,适合你做测试,学习等。
与Virtualbox类似的虚拟工具相比起来,虚拟一个系统仅需一个命令,几秒的时间而已,不需要选择介质,安装等这个非常耗费时间的过程。
在这里简单演示如何使用它:
代码语言:javascript复制查找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这个发行版本的镜像
代码语言:javascript复制虚拟一个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
我们可以确认刚刚虚拟出来的这个系统是否存在
代码语言:javascript复制#查找已存在的虚拟系统
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访问这个虚拟系统
代码语言:javascript复制multipass shell test-22-04
使用multipass shell
名称
就可以SSH到这个系统了。
这是一个功能完整的服务版本的Ubuntu,你可以在上面做任何Linux能做的事情。
传输文件
当你需要从本机传输文件到虚拟系统,或从虚拟系统传输文件到本机时,也非常方便
代码语言:javascript复制#使用transfer命令就可以任意传输文件了
multipass transfer ~/file.zip test-22-04:/tmp
删除系统
如果不需要了,那就把这个系统删除掉吧
代码语言:javascript复制#停止系统
multipass stop test-22-04
#删除系统
multipass delete test-22-4
#清理
multipass purge
是不是非常简单方便?
优点与缺点
简单说下它的优点与缺点吧:
优点:
- 1. 仅通过一行命令就能创建及删除一个虚拟系统,简单高效
- 2. 支持不同的Ubuntu发行版本及一些带功能的(比如Docker)的发行镜像
- 3. 支持各操作系统,无论是Windows,MacOS或是Linux都能安装与使用这个工具
缺点
- 1. 只支持Ubuntu的镜像,不支持其它Linux发行版本
- 2. 虚拟出的系统是服务器版,无GUI,不适合希望虚拟出GUI Linux系统(虽然可以通过安装xfce vncserver等方式来实现,但意义不大)
建议
如果你希望基于Linux快速学习或预部署,或者你本身就是Debian/Ubuntu的使用者(比如我,服务器Linux都是选择Debian),那这个工具非常有用,可以完全取代Virtualbox。
不过如果你是Redhat/CentOS系的使用者,或想要的是GUI的Linux,那这个就不太适合你了。我暂时还未发现Redhat系有类似的工具。