Multipass 是一个轻量级的虚拟机管理器,由 Ubuntu 运营公司 Canonical 所推出的开源项目。运行环境支持 LinuxWindowsmacOS。在不同的操作系统上,使用的是不同的虚拟化技术。在 Linux 上使用的是 KVMWindow 上使用 Hyper-VmacOS 中使用 HyperKit 以最小开销运行VM,同时它还可以在 Windows 和 macOS 上使用 VirtualBox,支持在个人电脑上通过简单的命令行快速创建Docker、Minikube及其他基于Ubuntu的轻量级云服务器,非常适合开发和测试人员使用,可以抛弃收费的VMware了。

     注意:如果是想用Hyper-V,则操作系统版本需要是Windows 10专业版、企业版、教育版本的1803及以上版本,若使用VirtualBox,则Windows 10家庭版和其他版本都是支持的,Win11更没问题。

       本文介绍的是在Windows+Virtualbox下安装使用,其他请参考官方文档

Multipass官网:Multipass orchestrates virtual Ubuntu instanceshttps://multipass.run/VirtualBox官网:Oracle VM VirtualBoxhttps://www.virtualbox.org/

1、下载与安装

  从上面两个官方下载Multipass 和VirtualBox,使用管理员权限进行安装。

 

 

如下安装界面勾选VirtualBox选项

如下界面选择添加到系统环境变量

安装成功后, 打开CMD或Power Shell终端执行以下命令可以查看当前软件版本:

multipass version

 推荐个跨平台支持的终端工具WindTermicon-default.png?t=M4ADhttps://github.com/kingToolbox/WindTerm

 

 

 查看帮助

multipass help

 

使用下面命令查看Ubuntu系统镜像类别

C:\# multipass find
Image                       Aliases           Version          Description
core                        core16            20200818         Ubuntu Core 16
core18                                        20211124         Ubuntu Core 18
18.04                       bionic            20220523         Ubuntu 18.04 LTS
20.04                       focal,lts         20220530         Ubuntu 20.04 LTS
21.10                       impish            20220604         Ubuntu 21.10
22.04                       jammy             20220604         Ubuntu 22.04 LTS
appliance:adguard-home                        20200812         Ubuntu AdGuard Home Appliance
appliance:mosquitto                           20200812         Ubuntu Mosquitto Appliance
appliance:nextcloud                           20200812         Ubuntu Nextcloud Appliance
appliance:openhab                             20200812         Ubuntu openHAB Home Appliance
appliance:plexmediaserver                     20200812         Ubuntu Plex Media Server Appliance
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
minikube                                      latest           minikube is local Kubernetes

2、配置与使用

2.1 设置虚拟化提供方式

 由于Multipass 默认使用 Hyper-V 作为它的虚拟化提供程序。

C:\# multipass get local.driver
virtualbox

前面在安装的时候如果不是选择的VirtualBox,则需管理员身份启动命令窗口或者PowerShell,然后输入以下命令进行切换

C:\# multipass set local.driver=virtualbox

C:\# 

2.2 网络设备查看

通过以下命令查看当前电脑的网络设置,复制如下所示的Name值备用

C:\# multipass networks
Name  Type  Description
WLAN  wifi  Intel(R) Wi-Fi 6 AX201 160MHz

2.3 创建虚拟机

通过下面命令,可以查看创建虚拟机的相关参数,Image通过multipass find查看-

C:\# multipass help launch
Usage: multipass launch [options] [[<remote:>]<image> | <url>]
Create and start a new instance.

Options:
  -?, -h, --help       Displays help on commandline options.
  --help-all           Displays help including Qt specific options.
  -v, --verbose        Increase logging verbosity. Repeat the 'v' in the short
                       option for more detail. Maximum verbosity is obtained
                       with 4 (or more) v's, i.e. -vvvv.
  -c, --cpus <cpus>    Number of CPUs to allocate.
                       Minimum: 1, default: 1.
  -d, --disk <disk>    Disk space to allocate. Positive integers, in bytes, or
                       with K, M, G suffix.
                       Minimum: 512M, default: 5G.
  -m, --mem <mem>      Amount of memory to allocate. Positive integers, in
                       bytes, or with K, M, G suffix.
                       Minimum: 128M, default: 1G.
  -n, --name <name>    Name for the instance. If it is 'primary' (the
                       configured primary instance name), the user's home
                       directory is mounted inside the newly launched instance,
                       in 'Home'.
  --cloud-init <file>  Path to a user-data cloud-init configuration, or '-' for
                       stdin
  --network <spec>     Add a network interface to the instance, where <spec> is
                       in the "key=value,key=value" format, with the following
                       keys available:
                        name: the network to connect to (required), use the
                       networks command for a list of possible values, or use
                       'bridged' to use the interface configured via `multipass
                       set local.bridged-network`.
                        mode: auto|manual (default: auto)
                        mac: hardware address (default: random).
                       You can also use a shortcut of "<name>" to mean
                       "name=<name>".
  --bridged            Adds one `--network bridged` network.
  --timeout <timeout>  Maximum time, in seconds, to wait for the command to
                       complete. Note that some background operations may
                       continue beyond that. By default, instance startup and
                       initialization is limited to 5 minutes each.

Arguments:
  image                Optional image to launch. If omitted, then the default
                       Ubuntu LTS will be used.
                       <remote> can be either ‘release’ or ‘daily‘. If <remote>
                       is omitted, ‘release’ will be used.
                       <image> can be a partial image hash or an Ubuntu release
                       version, codename or alias.
                       <url> is a custom image URL that is in http://, https://,
                       or file:// format.

执行以下命令,创建一个20.04LTS版本的虚拟机名称为demo1的,接入的网络设置为WLAN,

C:\# multipass launch 20.04 -n demo1 --network WLAN
Launched: demo1

若想创建一个docker的,则把20.04改成docker即可。

待安装成功后用下面命令查看刚创建的虚拟机信息,如果不使用--network参数,则IP地址为空,这样就无法访问该虚拟机里的服务

C:\# multipass info demo1
Name:           demo1
State:          Running
IPv4:           192.168.1.105
Release:        Ubuntu 20.04.4 LTS
Image hash:     103ae8982d79 (Ubuntu 20.04 LTS)
Load:           0.26 0.09 0.03
Disk usage:     1.4G out of 4.7G
Memory usage:   138.7M out of 976.9M
Mounts:         --

C:\# 

进入虚拟机

C:\# multipass shell demo1
Welcome to Ubuntu 20.04.4 LTS (GNU/Linux 5.4.0-113-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

  System information as of Thu Jun  9 01:05:08 CST 2022

  System load:  0.0               Processes:               102
  Usage of /:   28.9% of 4.67GB   Users logged in:         0
  Memory usage: 19%               IPv4 address for enp0s3: 10.0.2.15
  Swap usage:   0%                IPv4 address for enp0s8: 192.168.1.105


1 update can be applied immediately.
To see these additional updates run: apt list --upgradable


The list of available updates is more than a week old.
To check for new updates run: sudo apt update

To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.

ubuntu@demo1:~$ 

2.4 虚拟机设置

进入虚拟机后,调整ssh配置,以便允许通过ssh客户端访问

ubuntu@demo1:~$ sudo vi /etc/ssh/sshd_config
将
#PermitRootLogin prohibit-password
修改为
PermitRootLogin yes


将
PasswordAuthentication no
修改为
PasswordAuthentication yes

重启SSH服务

ubuntu@demo1:~$ sudo systemctl restart ssh

设置ubuntu账号登陆密码

ubuntu@demo1:~$ sudo passwd ubuntu
New password: 
Retype new password: 
passwd: password updated successfully
ubuntu@demo1:~$ 

在WindTerm下新建ssh连接,输入主机IP,点击连接后输入登录账号和密码,进入虚拟机内

 2.5 虚拟机启动与停止

C:\# multipass list
Name                    State             IPv4             Image
demo1                   Running           192.168.1.105    Ubuntu 20.04 LTS

C:\# multipass stop demo1

C:\# multipass list
Name                    State             IPv4             Image
demo1                   Stopped           --               Ubuntu 20.04 LTS

C:\# multipass start demo1

C:\# multipass list
Name                    State             IPv4             Image
demo1                   Running           192.168.1.105    Ubuntu 20.04 LTS

总结

Multipass 使用起来很方便,几分钟的时间就可以快速创建个虚拟机,比用VMWare、VirtualBox创建虚拟机要快捷的多。

注意:Multipass 是由 Ubuntu 背后的 Canonical 公司开发的,因此 Multipass 所使用的镜像也都是 Ubuntu 镜像。

 

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐