Nathan Hart
on 28 January 2022
Single-command Docker environments on any machine with Multipass
Multipass has a new workflow tailored to run Docker containers on macOS, Windows or Linux. One single command, no dependencies, full flexibility.
Multipass exists to bring Ubuntu-based development to the operating system of your choice. Whether you prefer the GUI of macOS (even on M1), Windows or any other Linux, the unmatched experience of developing software on Ubuntu is there at your fingertips, just one “multipass launch” away. Today, the Multipass team is delighted to enhance this experience for developers working with containerised applications!
A single command
Multipass can now provide a fresh VM running Docker Engine with just a single command:
multipass launch docker
Ephemeral or persistent, you decide. Multipass lets you launch and kill environments at will with easy one-command instructions. That way, you can be sure to always start from as clean a state as your CI does.
A near-native experience
With a straightforward setup, Multipass will now host virtual machines running Docker, and you can interact with the Docker daemon inside the virtual machine as if it were running on your main operating system. Thanks to aliases, the Docker workflow allows users to issue docker commands directly from their host command line – no need to install the docker CLI. By running:
multipass alias docker:docker
users can interact with Docker without switching contexts.
Docker on your Ubuntu version of choice
We’re excited about this new Docker workflow for a few reasons. First of all, you have nothing to install on your main operating system beyond Multipass itself. All the rest resides inside your Virtual Machine, without tainting your setup with excess tooling or dependencies. Moreover, cloud-native developers know all too well the sinking feeling of the container image registry getting out of control and bogging the entire operating system down. In Multipass, that bloat is contained, and a fresh slate is just one command away.
But, above all else, being able to freely select the host operating system for your containers gives you ultimate flexibility and control on which kernel that host runs. This is important because containers do not have their own kernel, but rely on that of the host. Linux has a track record of being compatible in terms of the interfaces to the process it runs, but there are use-cases, such as developing for FIPS, where a tailored kernel is just the thing one needs.
A cloud development suite, now with Portainer built in
Multipass is a great tool for working with containers in more ways than one. Our Minikube workflow is one great example of a built-in tool for container development. Microk8s runs on top of Multipass cross-platform and is our pick for pocket-sized Kubernetes.
One extra tool we’re adding to the bag for this workflow is Portainer. In fact, each VM instance created with the Docker workflow comes with a Portainer container already running in Docker. Once that instance is launched, you’re already up and running with a convenient GUI interface for launching and managing your containers.
Next steps
We are committed to make Multipass your virtualisation tool of choice to develop on Ubuntu anywhere. Stop by our Discourse if you have suggested improvements.
Multipass is highly customisable thanks to its cloud-init integration. In fact, we wrote a blog last year about how to set up a docker environment through cloud-init. Let us know how you’ve customised Multipass for your specific needs, and stay tuned for some more exciting new features in the coming releases!
If you’re looking to set up a development environment, check out our blog post on setting up vscode linux environments.