Multipass is a lightweight virtual machine (VM) manager designed for developers who require a fresh Ubuntu environment with minimal effort. It simplifies the process of launching and managing VMs across Linux, Windows, and macOS platforms.
Key Features:
Cross-Platform Support: Operates seamlessly on Linux, Windows, and macOS using native hypervisors like KVM, Hyper-V, and HyperKit, ensuring optimal performance.
Cloud-Style Deployment: Enables developers to launch cloud instances with a single command, initializing them with cloud-init metadata akin to public clouds.
File Sharing Integration: Facilitates easy sharing of files and folders between the host system and VMs, enhancing workflow efficiency.
Curated Image Catalogue: Offers a selection of pre-configured Ubuntu images, allowing quick setup for various projects without additional customization.
Audience & Benefit:
Multipass is ideal for developers seeking streamlined workflows and efficient resource management. It provides instant access to optimized Ubuntu environments, reducing setup time and enabling rapid project deployment. By leveraging cloud-init, developers can automate configurations, saving time and ensuring consistency across development environments. Additionally, the automatic updates of curated images ensure that developers always work with the latest, secure software versions.
This solution is perfect for those who need a reliable, efficient VM management tool tailored to their specific needs, offering flexibility and performance across different operating systems.
README
What is Multipass?
Multipass is a lightweight VM manager for Linux, Windows and macOS. It's designed for developers who want to spin up a
fresh Ubuntu environment with a single command. It uses KVM on Linux, Hyper-V on Windows and QEMU on macOS to run
virtual machines with minimal overhead. It can also use VirtualBox on Windows and macOS. Multipass will fetch Ubuntu
images for you and keep them up to date.
Since it supports metadata for cloud-init, you can simulate a small cloud deployment on your laptop or workstation.
Alternatively, you can use Homebrew. Please note that this method is not
officially supported, as it is not maintained by the Multipass team, but by the community. Multipass is available as
a cask:
brew install --cask multipass
Please note that you may be required to enter your password for some sudo operations during installation. You may also
need to disable the firewall to launch a multipass instance successfully on macOS.
$ multipass find
Image Aliases Version Description
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
Blueprint Aliases Version Description
anbox-cloud-appliance latest Anbox Cloud Appliance
charm-dev latest A development and testing environment for charmers
docker 0.4 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
ros-noetic 0.1 A development and testing environment for ROS Noetic.
ros2-humble 0.1 A development and testing environment for ROS 2 Humble.
Launch a fresh instance of the current Ubuntu LTS
$ multipass launch lts
Launched: dancing-chipmunk
Check out the running instances
$ multipass list
Name State IPv4 Image
dancing-chipmunk Running 192.168.64.8 Ubuntu 24.04 LTS
phlegmatic-bluebird Stopped -- Ubuntu 22.04 LTS
docker Running 192.168.64.11 Ubuntu 22.04 LTS
172.17.0.1
Learn more about an instance
$ multipass info dancing-chipmunk
Name: dancing-chipmunk
State: Running
Snapshots: 0
IPv4: 192.168.64.8
Release: Ubuntu 24.04 LTS
Image hash: e2608bfdbc44 (Ubuntu 24.04 LTS)
CPU(s): 1
Load: 5.70 4.58 2.63
Disk usage: 3.3GiB out of 4.8GiB
Memory usage: 769.0MiB out of 953.0MiB
Mounts: --
Don't forget to logout (or Ctrl-D) or you may find yourself heading all the way down Inception levels... ;)
Run commands inside an instance from outside
$ multipass exec dancing-chipmunk -- lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 24.04 LTS
Release: 24.04
Codename: noble
Stop an instance to save resources
$ multipass stop dancing-chipmunk
Delete an instance
$ multipass delete dancing-chipmunk
The instance will now show up as deleted:
$ multipass list
Name State IPv4 Image
dancing-chipmunk Deleted -- Ubuntu 24.04 LTS
phlegmatic-bluebird Stopped -- Ubuntu 22.04 LTS
docker Running 192.168.64.11 Ubuntu 22.04 LTS
172.17.0.1
If you want to completely get rid of it:
$ multipass purge
Get help
multipass help
multipass help
Contributing
The Multipass team appreciates contributions to the project, through pull requests, issues, or discussions and questions
on the Discourse forum. Please read the policy sections below carefully
before contributing to the project.
Building Multipass
Please follow the platform-specific build instructions in the files below:
Qt version compatibility
Multipass is tested with Qt 6.9.1. Newer patch versions along the 6.9 track (e.g. 6.9.2) should be fine. Newer minor versions may work, but they may cause compatibility issues.
You may use your preferred package manager to install Multipass.
Note that only the official installers are supported.
See the installation guide for details.
If you notice outdated information or inconsistencies in these files, please open an issue or, even better, submit a pull request!
You can also reference our GitHub Actions CI to see how Multipass is built and tested across platforms.
Automatic linker selection
Requires (>= CMake 3.29)
To accelerate the build, the build system will attempt to locate and utilize mold or lld (respectively) in place of
the default linker of the toolchain. To override, set
CMAKE_LINKER_TYPE at CMake
configure step.
The code in this repository is licensed under GNU General Public License v3.0.
See LICENSE for more information.
License agreement
All contributors must sign the Canonical contributor license agreement (CLA),
which gives Canonical permission to use the contributions. Without the CLA, contributions cannot be accepted.
Pull requests
Changes to this project should be proposed as pull requests. Proposed changes will then go through review and once
approved, be merged into the main branch.