Introduction to Canonical Multipass
Containers have taken the world by the storm. Be it the application containers such as Docker or Rocket, or the operating system containers such as OpenVZ, LXC/LXD or Multipass.
I have always found containers pretty fascinating. The reason being that they provide with a neat & clean interface to start with and once you are done, all the mess can be cleaned up as if it was never there.
In this post we will have a look at Multipass which is an operating system containerzation technology by Canonical, the company behind Ubuntu. Multipass is available for Windows, Mac & Linux. For the insallation instruction for your particular operating system, please see
NOTE: If you are running _Windows Professional_, then Multipass can use the built-in Hyper-V technology. Alternatively you will have to install Oracle Virtualbox separately, to use Multipass.
Lets dive into how to use Multipass. The simplest way to launch an Ubuntu VM is
The will create an Ubuntu vm with the latest LTS version. Now whenever a new VM is created, of course some resources (RAM, CPU, Disk space etc) will be allocated. To list them out
PS C:\Users\visha> multipass info wise-llama
Name: wise-llama
State: Running
IPv4: N/A
Release: Ubuntu 20.04.1 LTS
Image hash: 69138d4bbf4f (Ubuntu 20.04 LTS)
Load: 0.00 0.04 0.05
Disk usage: 1.2G out of 4.7G
Memory usage: 125.3M out of 981.3M
PS C:\Users\visha>
By default, _1_ CPU, _1 GB_ of RAM & _5 GB_ of disk space is allocated. This can be changed by passing parameters when launching the VM. To know about the paramters
PS C:\Users\visha> multipass help launch
This will output all parameters which can be passed to _multipass launch_. Lets launch an Ubuntu VM with custom configuration.
multipass launch -v -c 2 -d 10G -m 2G -n bionic 18.04
Once the VM has been created, we can issue a command to it from the host machine directly.
PS C:\Users\visha> multipass exec bionic — lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 18.04.5 LTS
Release: 18.04
Codename: bionic
PS C:\Users\visha>
Alternatively, we can get direct access to shell inside the VM.
PS C:\Users\visha> multipass shell bionic
Welcome to Ubuntu 18.04.5 LTS (GNU/Linux 4.15.0–124-generic x86_64)* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantageSystem information as of Sat Nov 28 06:06:54 +04 2020System load: 0.17 Processes: 84
Usage of /: 22.1% of 4.67GB Users logged in: 0
Memory usage: 11% IP address for enp0s3: 10.0.2.15
Swap usage: 0%0 packages can be updated.
0 updates are security updates.New release ‘20.04.1 LTS’ available.
Run ‘do-release-upgrade’ to upgrade to it.To run a command as administrator (user “root”), use “sudo <command>”.
See “man sudo_root” for details.ubuntu@bionic:~$
Now we are inside of the ubuntu bionic instanace. You can use this like any other ubuntu instance. Once we are done, then we can stop the running instance(s) so that the allocated RAM & CPU becomes free and goes back to the host machine. But since we have just stopped the VM, hence the disk space is still occupied. In order to recover the disk space, the VM must be deleted & purged.
multipass delete <vm-nam>
multipass purge
For the full list of commands supported by multipass, just run multipass without any arguments. To know more about a specific command run — multipass help <command>
PS C:\Users\visha> multipass
Usage: Program Files\Multipass\bin\multipass.exe [options] <command>
Create, control and connect to Ubuntu instances.This is a command line utility for multipass, a service that manages Ubuntu instances.Options:
-?, -h, — help Display this help
-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.Available commands:
delete Delete instances
exec Run a command on an instance
find Display available images to create instances from
get Get a configuration setting
help Display help about a command
info Display information about instances
launch Create and start an Ubuntu instance
list List all available instances
mount Mount a local directory in the instance
purge Purge all deleted instances permanently
recover Recover deleted instances
restart Restart instances
set Set a configuration setting
shell Open a shell on a running instance
start Start instances
stop Stop running instances
suspend Suspend running instances
transfer Transfer files between the host and instances
umount Unmount a directory from an instance
version Show version detailsPS C:\Users\visha>
That will be all folks!!
For the case where Multipass is using VirtualBox, you need to download PSExec and the use the following command to the instances in VirtualBox interface
PS> & $env:USERPROFILE\Downloads\PSTools\PsExec.exe -s -i $env:VBOX_MSI_INSTALL_PATH\VirtualBox.exe