Incus on multiple platforms (Windows, MacOS and others)


this is suggestions to support run Incus inside Lightweight VM (with nest virtualization) to run Incus i side Itself, Windows, MacOS, or BSD

the idea is similar to Docker desktop and Podman Machine and the difference is that incus support virtual machines

This feature maybe will allow Incus to run itself in other architecture then the main ISA architecture (for example run amd64 container/vm inside RISC-V machine)

Is it possible to support that?
Is there will be benefit from it?
How I can start working on it (I need Guide)?

It is already possible. You can run a Linux VM on any OS and then run Incus inside that VM.

You just need to make sure your CPU supports nested virtualization. If it does then you get both containers and VMs. If not then you get containers. The M1 Mac chips don’t. I am not sure about the newer ones.

For Macs you can use Parallels. It is not open source but it makes every thing easy.

1 Like

For Macs, there is multipass as a quick way to get an Ubuntu VM up and running, similar to podman machine, and you can run incus inside that.

For some reason, multipass decided to migrate from Apple Hyperkit to qemu. In principle, using qemu means you ought to be able to run different archs (slowly), but AFAICS it hasn’t been implemented.

Other options include lima (which can definitely run x86_64 on ARM), utm, tart, quickemu. Too many to keep track of :frowning:

1 Like

As others mentioned, it’s possible for you to do that yourself already by running Incus inside of a virtual machine on those platforms.

We’re not very likely to be building something like Docker Desktop ourselves as that requires more familiarity with other platforms than we currently have.

One thing worth noting, not all platforms properly handle nested virtualization.
Especially on Arm, most platforms do not support it, which actually makes testing for us a bit of a pain, but may also impact running virtual machines nested on a Mac. Though I seem to recall reading that Apple’s Arm implementation does have nesting support somehow.

1 Like