multipass轻量级的虚拟机管理工具

Multipass 是一个非常实用、轻量级的虚拟机管理工具,尤其适合开发者和运维人员在 macOS、Windows、Linux 上快速创建和管理 Ubuntu 实例。它由 Canonical(Ubuntu 官方) 开发,本质上可以看作是 Ubuntu 版的「轻量 Vagrant + QEMU/Hyper-V/VirtualBox 管理器」。


一、Multipass 概念与定位

Multipass 是 Canonical 推出的跨平台虚拟机管理器,用于快速启动和管理 Ubuntu 实例。
它的主要目标是让开发者“一行命令拥有一个干净的 Ubuntu 环境”。

特点:

  • 跨平台:支持 macOS、Windows、Linux
  • 轻量快速:基于 QEMU(macOS / Linux)或 Hyper-V(Windows)
  • 云镜像机制:从 Ubuntu 官方云镜像拉取(类似 cloud-init)
  • 内置网络支持:支持 NAT / Bridge / 多实例间互通
  • 支持 cloud-init:可自定义初始化脚本
  • CLI 极简友好:命令风格类似 Docker 或 Vagrant

二、安装方式

macOS(推荐方式)

1
brew install --cask multipass

启动后台服务驱动:

1
2
sudo multipass get local.driver # mac默认qemu
sudo multipass set local.driver=qemu

验证:

1
2
multipass version
multipass info

Linux(Ubuntu/Debian)

1
sudo snap install multipass

Windows(使用 Hyper-V 或 VirtualBox)

在官网下载安装包:
https://multipass.run


三、基本使用示例

启动第一个实例

1
multipass launch --name testvm

等价于:

1
multipass launch ubuntu:lts --name testvm

默认下载最新的 Ubuntu LTS 云镜像

查看实例

1
multipass list

输出示例:

Name       State    IPv4       Image
testvm     Running  192.168.64.3  Ubuntu 22.04 LTS

登录实例

1
multipass shell testvm

(自动 ssh 进入)

停止、删除实例

1
2
3
multipass stop testvm
multipass delete testvm
multipass purge # 清理已删除实例占用的磁盘

四、进阶使用

启动时自定义资源

1
multipass launch -n devbox -c 4 -m 8G -d 40G

说明:

  • -c CPU 核数
  • -m 内存大小
  • -d 磁盘大小

使用 cloud-init 初始化

1
multipass launch -n web --cloud-init cloud-config.yaml

示例 cloud-config.yaml

1
2
3
4
5
6
#cloud-config
packages:
- nginx
runcmd:
- systemctl enable nginx
- systemctl start nginx

启动后 VM 会自动装好 nginx 并启动。

挂载宿主机目录

1
multipass mount ~/Projects web:/srv

在实例内 /srv 即可访问宿主机 ~/Projects

获取 IP 地址

1
multipass info web | grep IPv4

执行远程命令

1
multipass exec web -- ls /etc/nginx

五、Multipass 与其他方案比较

功能 Multipass Vagrant Docker
启动速度 ✅ 快 ❌ 慢 ✅ 快
系统类型 真机 Ubuntu 任意虚拟机镜像 容器镜像
适合用途 DevOps / CI 测试 / 快速原型 多系统测试 / 环境一致性 应用级容器化
网络隔离 支持 支持 支持
cloud-init ✅ 原生支持 ✅(间接)

Multipass 本质上是“最轻量的 Ubuntu 云镜像本地管理器”,
比 Vagrant 轻量得多,也比 Docker 更贴近真实系统环境。


六、实例创建过程

1bd1f1ef2fcb2a886ecbc1ef55258bbf.png


七、典型应用场景

  1. DevOps 环境快速复现

    一行命令就能启动干净的 Ubuntu 测试机

    1
    multipass launch -n ci-runner -c 2 -m 4G
  2. 多实例测试 / 分布式实验

    模拟集群:

    1
    2
    3
    multipass launch -n node1
    multipass launch -n node2
    multipass launch -n node3
  3. 本地 K8s 节点环境(轻量版)

    Multipass 可搭配 microk8s:

    1
    multipass launch -n k8s --cloud-init microk8s-init.yaml
  4. CI/CD 环境隔离

    • 在 macOS/Windows 上快速部署独立 Ubuntu Runner
    • 避免 Dockerfile 过重