Working with Multipass instances

This page is no longer maintained. Please refer to How to manage Multipass instances.

This page is a quick primer on how to use Multipass.

Launching your first instance

After having installed it, the multipass command line utility is your main entry point.

$ multipass launch
…
Launched: keen-yak

The launch command creates a new Ubuntu instance using the default, at this point in time, image. It’s most likely going to be the latest cloud image of the newest Ubuntu LTS (Long Term Support) release. You can also choose another image, use find to see what’s available.

It will use a catchy name for you, but you can use the --name option to give it a name of your own. As is usual, you can pass --help to see all the available options.

Executing commands

There are a couple ways you can access the instance: exec and shell (or sh for short), which will execute the given command directly, or open a shell inside the instance, respectively:

$ multipass exec keen-yak -- lsb_release --description
Description:    Ubuntu 18.04.1 LTS
$ multipass shell keen-yak
Welcome to Ubuntu 18.04.1 LTS (GNU/Linux 4.15.0-36-generic x86_64)
…
multipass@keen-yak:~$

Note the -- passed to the exec command - use it to separate the options passed to multipass from those passed to the command being executed.

From there you can work inside your instance as with any other Ubuntu installation. To install software, use snap or apt, both are available.

Getting more information

To get some information about your instances, you can list them (ls for short):

$ multipass ls
Name                    State             IPv4             Release
keen-yak                RUNNING           10.140.94.253    Ubuntu 18.04 LTS
snapcraft-multipass     STOPPED           --               Ubuntu Snapcraft builder for Core 16

Or you can ask for an extended status report:

$ multipass info keen-yak
Name:           keen-yak
State:          RUNNING
IPv4:           10.140.94.253
Release:        Ubuntu 18.04.1 LTS
Image hash:     d53116c67a41 (Ubuntu 18.04 LTS)
Load:           0.00 0.12 0.18
Disk usage:     1.1G out of 4.7G
Memory usage:   71.6M out of 985.4M

Sharing data with the instance

The recommended way to share data between your host and the instance is the mount command:

$ multipass mount $HOME keen-yak
$ multipass info keen-yak
…
Mounts:         /home/ubuntu => /home/ubuntu

From this point on /home/ubuntu will be available inside the instance. Use umount to unmount it again and you can change the target by passing it after the instance name:

$ multipass umount keen-yak
$ multipass mount $HOME keen-yak:/some/path
$ multipass info keen-yak                
…
Mounts:         /home/michal => /some/path

You can also use transfer to just copy files around - prefix the path with <name>: if it’s inside an instance:

$ multipass transfer keen-yak:/etc/crontab keen-yak:/etc/fstab .
$ ls -l crontab fstab
-rw-r--r-- 1 ubuntu ubuntu 722 Oct 18 12:13 crontab
-rw-r--r-- 1 ubuntu ubuntu  82 Oct 18 12:13 fstab
$ multipass transfer crontab fstab keen-yak:
$ multipass exec keen-yak -- ls -l crontab fstab
-rw-rw-r-- 1 multipass multipass 722 Oct 18 12:14 crontab
-rw-rw-r-- 1 multipass multipass  82 Oct 18 12:14 fstab

Deleting the instance

When you’re done with it, you can delete the instance:

$ multipass delete keen-yak

You will see in list that it’s actually just marked for deletion (or to put it in other words, put in the Recycle bin):

$ multipass list
Name                    State             IPv4             Release
keen-yak                DELETED           --               Not Available

You can then recover it, or purge to remove all deleted instances completely:

$ multipass recover keen-yak
$ multipass list
Name                    State             IPv4             Release
keen-yak                STOPPED           --               Ubuntu 18.04 LTS
$ multipass delete keen-yak
$ multipass purge
$ multipass ls
No instances found.

And more…

See our Command-line reference for a complete listing of the available commands and their options.

4 Likes

The command line option ‘copy-files’ is not available on my mac. Is this replaced by ‘transfer’ ?

Yes, thanks, good catch. Fixed.

2 posts were split to a new topic: Can’t make transfer work using $HOME on Windows