Multipass - 在 Linux 中运行虚拟 Ubuntu 实例
Multipass 是一个跨平台的轻量级 Ubuntu 虚拟机 (VIM) 管理器,可在 Linux、Windows 和 macOS 上运行。它构建了云风格的 Ubuntu VM,允许开发人员使用单个命令快速设置新的 Ubuntu 环境。
作为开发工具,以下是使用 Multipass 的一些主要优势:
- 设置本地开发环境和测试可能非常耗时,但 Multipass 通过自动执行所有设置和拆卸来简化流程。
- 开发人员可以使用 Multipass 在任何机器上生成全新的自定义 Linux 开发环境,并制作云安装原型。
- Multipass 是 Mac 和 Windows 用户在其 PC 上获取 Ubuntu 命令行的最快方式。
- 新的 Ubuntu 用户可以使用 Multipass 作为沙盒来试验新功能,而不会弄乱他们的主机或不必双启动。
重要的是要强调 Multipass 通过使用 VirtualBox 以低开销运行 VM 也可以在 Windows 和 macOS 上使用。 Multipass 会自动为您检索和更新图像。
此外,Multipass 拥有不断增长的图像库,您可以通过其强大的 cloud-init 界面启动专门构建的 VM 或您自己定制的定制 VM。
本指南介绍如何在 Linux 操作系统上安装和使用 Multipass。
在 Linux 上安装 Multipass
Multipass 是最流行的支持 snap 的 Linux 发行版。
要在您的计算机上安装 Multipass,您必须在系统上安装 Snap,如果没有,请为您的 Linux 发行版使用正确的命令集。
在 Ubuntu 上安装 Multipass
$ sudo apt update
$ sudo apt install snapd
$ sudo snap install multipass
在 Linux Mint 上安装 Multipass
$ sudo rm /etc/apt/preferences.d/nosnap.pref
$ sudo apt update
$ sudo apt install snapd
$ sudo snap install multipass
在 Debian 上安装 Multipass
$ sudo apt update
$ sudo apt install snapd
$ sudo snap install core
$ sudo snap install multipass
在 Fedora 上安装 Multipass
$ sudo dnf install snapd
$ sudo ln -s /var/lib/snapd/snap /snap
$ sudo snap install multipass
在 RHEL 上安装 Multipass
$ sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm [RHEL 9]
$ sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm [RHEL 8]
$ sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm [RHEL 7]
$ sudo dnf upgrade
$ sudo subscription-manager repos --enable "rhel-*-optional-rpms" --enable "rhel-*-extras-rpms"
$ sudo yum update
$ sudo yum install snapd
$ sudo systemctl enable --now snapd.socket
$ sudo ln -s /var/lib/snapd/snap /snap
$ sudo snap install multipass
在 openSUSE 上安装 Multipass
$ sudo zypper addrepo --refresh https://download.opensuse.org/repositories/system:/snappy/openSUSE_Leap_15.2 snappy
$ sudo zypper --gpg-auto-import-keys refresh
$ sudo zypper dup --from snappy
$ sudo zypper install snapd
$ sudo systemctl enable --now snapd
$ sudo snap install multipass
在 Arch Linux 上安装 Multipass
$ git clone https://aur.archlinux.org/snapd.git
$ cd snapd
$ makepkg -si
$ sudo systemctl enable --now snapd.socket
$ sudo ln -s /var/lib/snapd/snap /snap
$ sudo snap install multipass
在您的机器上安装 multipass 后,您可以使用它从命令行在本地运行 Ubuntu 实例,如以下部分所述。
查找可用的 Ubuntu 映像
运行以下 multipass 命令以查看可用的多通道图像列表,您可以从中下载和创建实例:
$ multipass find

下载 Ubuntu 镜像
确定要使用的 Multipass 映像后,使用 launch
命令下载、创建并启动本地 Ubuntu 实例。
此示例演示如何使用 Ubuntu 22.04 映像:
$ multipass launch 22.04
launch failed: Another virtual machine manager is currently running. Please shut it down before starting a Multipass instance.

要继续,请关闭其他虚拟机。然后再次尝试运行 multipass。
如果您的启动命令成功,Ubuntu 映像已下载,本地 Ubuntu 实例已创建并启动,该实例应该有一个由 Multipass 随机生成的名称。如屏幕截图所示,实例名称在本例中为 validating-goat。
新实例默认启动时具有 1 个 CPU、1GB 内存和 5GB 存储空间。

列出所有可用实例
multipass list
命令列出了所有创建的本地实例及其一些属性:
$ multipass list

您可以使用 info
命令显示有关实例的信息,例如其状态、IP 地址、版本、图像哈希、CPU 数量、负载、内存使用情况和安装,如图所示在以下屏幕截图中:
$ multipass info validating-goat

在 Ubuntu 实例中打开 Shell
要在正在运行的实例中启动 shell(例如,validating-goat),请使用 shell
命令:
$ multipass shell validating-goat

将 shell 启动到正在运行的实例后,您可以在其上正常运行命令。例如,您可以如图所示更新其上的 apt 包索引。
$ sudo apt update

启动或停止实例
要停止或启动实例,请分别使用以下命令:
$ multipass stop validating-goat
$ multipass start validating-goat
删除本地实例
要删除本地实例,无论它是正在运行还是已停止,请使用 delete
命令,如图所示。
$ multipass list
$ multipass delete exalted-meerkat

使用自定义设置启动实例
您还可以启动具有自定义规格(例如名称、CPU 数量、RAM 大小和磁盘大小,如图所示)的实例。
$ multipass launch 22.04 --name tecmint-test --memory 1G --disk 10G --cpus 2
$ multipass info tecmint-test

在您的 Ubuntu 实例中运行 Web 服务器
让我们看看如何使用本地 Ubuntu 实例。此示例显示如何安装和运行基本的 NGINX 网络服务器,如下所示:
$ multipass shell tecmint-test
$ sudo apt update
$ sudo apt install nginx
安装 NGINX 后,该服务应该会自动启动(这是 systemctl 命令的已知行为,以确保它启动并运行:
$ systemctl status nginx

现在使用您正在运行的实例的 IP 地址(您可以从本地实例列表中获取)向 NGINX 发出请求并查看默认的欢迎网页,如以下屏幕截图所示。

在 Linux 上卸载 Multipass
要从您的计算机中删除 Multipass,请运行以下命令:
$ sudo snap remove multipass
有关 Multipass 命令行选项的详细信息,请运行以下命令:
$ multipass -h
您已经成功安装了 Multipass 并学习了如何使用它在您的计算机上快速、高效、可靠地启动和管理 Ubuntu 实例。
如有任何意见,请使用下面的反馈表与我们联系。