When working with LXD clouds, juju deploy creates a container by default. But LXD allows one to create virtual machines as well.
There are some applications that don’t make much sense to runs as containers (see also [Feature request] Forbid LXD for some charms), so VMs for local development are essential.
How do I juju deploy applications as virtual machines on LXD?
Typically for a local VM-based cloud, we deploy MAAS and use Pod VMs deployed by MAAS which used libvirt for deploying and managing the VMs. The Juju integration for LXD is container-only, as far as I’m aware.