什么是Multipass?
Multipass是一个适用于Linux、Windows和macOS的轻量级虚拟机管理器。它专为希望通过单一命令快速创建全新Ubuntu环境的开发者而设计。它在Linux上使用KVM,在Windows上使用Hyper-V,在macOS上使用QEMU来以最小开销运行虚拟机。它还可以在Windows和macOS上使用VirtualBox。Multipass会为你获取Ubuntu镜像并保持更新。
由于它支持cloud-init的元数据,你可以在笔记本电脑或工作站上模拟小型云部署。
项目状态
安装
-
在Linux上,Multipass可以通过snap安装:
sudo snap install multipass
-
在macOS上,你可以从GitHub下载安装程序或使用Homebrew:
brew install --cask multipass
请注意,在安装过程中,你可能需要输入密码进行一些sudo操作。你可能还需要禁用防火墙才能在macOS上成功启动Multipass实例。
-
在Windows上,从GitHub下载安装程序。
更多信息,请参阅如何安装Multipass。
使用方法
以下是Multipass使用的一些入门指南。要获得更全面的学习体验,请查看Multipass的教程。
查找可用镜像
$ multipass find
镜像 别名 版本 描述
20.04 focal 20240731 Ubuntu 20.04 LTS
22.04 jammy 20240808 Ubuntu 22.04 LTS
24.04 noble,lts 20240806 Ubuntu 24.04 LTS
蓝图 别名 版本 描述
anbox-cloud-appliance latest Anbox云设备
charm-dev latest 魅力开发者的开发和测试环境
docker 0.4 带有Portainer和相关工具的Docker环境
jellyfin latest Jellyfin是一个自由软件媒体系统,让你能够控制管理和流媒体播放。
minikube latest minikube是本地Kubernetes
ros-noetic 0.1 ROS Noetic的开发和测试环境。
ros2-humble 0.1 ROS 2 Humble的开发和测试环境。
启动当前Ubuntu LTS的全新实例
$ multipass launch lts
已启动:dancing-chipmunk
查看正在运行的实例
$ multipass list
名称 状态 IPv4 镜像
dancing-chipmunk 运行中 192.168.64.8 Ubuntu 24.04 LTS
phlegmatic-bluebird 已停止 -- Ubuntu 22.04 LTS
docker 运行中 192.168.64.11 Ubuntu 22.04 LTS
172.17.0.1
了解实例的更多信息
$ multipass info dancing-chipmunk
名称: dancing-chipmunk
状态: 运行中
快照: 0
IPv4: 192.168.64.8
发行版: Ubuntu 24.04 LTS
镜像哈希: e2608bfdbc44 (Ubuntu 24.04 LTS)
CPU数量: 1
负载: 5.70 4.58 2.63
磁盘使用: 3.3GiB / 4.8GiB
内存使用: 769.0MiB / 953.0MiB
挂载: --
连接到正在运行的实例
$ multipass shell dancing-chipmunk
欢迎使用 Ubuntu 24.04 LTS (GNU/Linux 6.8.0-39-generic aarch64)
...
别忘了注销(或按Ctrl-D),否则你可能会发现自己一层层深入,就像电影《盗梦空间》一样... ;)
从外部在实例内运行命令
$ multipass exec dancing-chipmunk -- lsb_release -a
没有可用的LSB模块。
发行版ID: Ubuntu
描述: Ubuntu 24.04 LTS
发行版: 24.04
代号: noble
停止实例以节省资源
$ multipass stop dancing-chipmunk
删除实例
$ multipass delete dancing-chipmunk
实例现在会显示为已删除:
$ multipass list
名称 状态 IPv4 镜像
dancing-chipmunk 已删除 -- Ubuntu 24.04 LTS
phlegmatic-bluebird 已停止 -- Ubuntu 22.04 LTS
docker 运行中 192.168.64.11 Ubuntu 22.04 LTS
172.17.0.1
如果你想完全删除它:
$ multipass purge
获取帮助
multipass help
multipass help <命令>
开始开发Multipass
以下是在Linux上构建Multipass源代码的步骤。
请注意,这些说明不支持为macOS或Windows系统构建软件包。
构建依赖
cd <multipass>
sudo apt install devscripts equivs
mk-build-deps -s sudo -i
构建 Multipass
cd <multipass>
git submodule update --init --recursive
mkdir build
cd build
cmake ../
make
请注意,如果你正在使用"仅复制主分支"选项创建的分叉仓库上工作,该仓库将不包含在 CMake 配置期间确定 Multipass 版本所需的 git 标签。在这种情况下,你需要在 <multipass>
源代码目录中运行 git fetch --tags https://github.com/canonical/multipass.git
来手动获取上游标签。
运行 Multipass 守护进程和客户端
首先,安装 Multipass 的运行时依赖项。在 AMD64 架构上,你可以通过以下命令完成:
sudo apt update
sudo apt install libgl1 libpng16-16 libqt6core6 libqt6gui6 \
libqt6network6 libqt6widgets6 libxml2 libvirt0 dnsmasq-base \
dnsmasq-utils qemu-system-x86 qemu-utils libslang2 iproute2 \
iptables iputils-ping libatm1 libxtables12 xterm
然后运行 Multipass 守护进程:
sudo <multipass>/build/bin/multipassd &
将 Multipass 客户端期望在你的主目录中找到的桌面文件复制到相应位置:
mkdir -p ~/.local/share/multipass/
cp <multipass>/data/multipass.gui.autostart.desktop ~/.local/share/multipass/
可选地,在 Bash 中启用自动完成:
source <multipass>/completions/bash/multipass
现在你可以从终端使用 multipass
命令(例如 <multipass>/build/bin/multipass launch --name foo
)或使用命令 <multipass>/build/bin/multipass.gui
启动 GUI 客户端。
贡献指南
Multipass 团队感谢通过拉取请求、问题或在 Discourse 论坛 上的讨论和问题对项目做出的贡献。
在贡献之前,请仔细阅读以下指南。
行为准则
在贡献时,你必须遵守 行为准则。
版权
本仓库中的代码基于 GNU 通用公共许可证 v3.0 授权。有关更多信息,请参阅 LICENSE。
许可协议
所有贡献者必须签署 Canonical 贡献者许可协议(CLA),该协议授予 Canonical 使用贡献的权限。没有 CLA,贡献将无法被接受。
拉取请求
对该项目的更改应通过拉取请求提出。提议的更改将经过审核,一旦获得批准,将合并到主分支中。