zl程序教程

您现在的位置是:首页 >  后端

当前栏目

轻量级虚拟机Multipass

虚拟机 轻量级 Multipass
2023-06-13 09:13:09 时间

介绍一个我觉得非常方便实用的工具吧,就是Ubuntu推出的一款轻量级虚拟工具 multipass

做为程序员,一定有很多时候我们需要与Linux服务系统打交道,很多时候我们需要虚拟一个Linux做一些练习,学习或预演部署等,这种时候我们就都会依赖虚拟机来虚拟一个Linux来做这些事。

以往我用的最多的是Oralce的一款开源的虚拟机工具Virtualbox,想必大家也应该知道或非常熟悉。很多时候学习就会用Oralce Virtualbox虚拟出三个Linux来做学习与实践。

类似的工具,还有其它一些,比如vmware,parallels等,这些都是收费软件。

这些工具,在虚拟Linux时,都有一个不太好的缺点,那就是:

虚拟Linux服务器需要安装这个过程,非常麻烦

所以,是否有一种能快速虚拟出一个Linux系统,使用完就废弃掉,这样是不是更方便实用?

是的,这就是我最近发现的Multipass这个轻量级的虚拟工具。它能做到快速的虚拟与删除,节省掉了安装系统的时间。

什么是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

是不是非常简单方便?

优点与缺点

简单说下它的优点与缺点吧:

优点:

  1. 1. 仅通过一行命令就能创建及删除一个虚拟系统,简单高效
  2. 2. 支持不同的Ubuntu发行版本及一些带功能的(比如Docker)的发行镜像
  3. 3. 支持各操作系统,无论是Windows,MacOS或是Linux都能安装与使用这个工具

缺点

  1. 1. 只支持Ubuntu的镜像,不支持其它Linux发行版本
  2. 2. 虚拟出的系统是服务器版,无GUI,不适合希望虚拟出GUI Linux系统(虽然可以通过安装xfce + vncserver等方式来实现,但意义不大)

建议

如果你希望基于Linux快速学习或预部署,或者你本身就是Debian/Ubuntu的使用者(比如我,服务器Linux都是选择Debian),那这个工具非常有用,可以完全取代Virtualbox。

不过如果你是Redhat/CentOS系的使用者,或想要的是GUI的Linux,那这个就不太适合你了。我暂时还未发现Redhat系有类似的工具。