Skip to content
Tech News
← Back to articles

Podman 6: machine usability improvements

read original more articles

I wanted to introduce a significant change we are making in Podman 6 for our machine function. To understand the problem and change, we first need to establish that Podman machine is based on a concept of providers. The provider is a generic term that describes how Podman runs the Linux virtual machine. The following table is a list of providers by platform.

Platform Supported Providers Windows WSL1 HyperV Linux QEMU1 MacOS Libkrun1 Applehv2

1 default for platforms for Podman 6

2 default for Podman 5

In Podman 5, particularly with the use of Podman Desktop and with platforms that supported multiple providers, it was possible to create machines for either provider without changing the default provider as defined in ~/.config/containers/containers.conf . So if you created or ran a machine in the non-default provider with Podman Desktop and then decided to use the Podman CLI, the CLI would be unaware of the existence of the machine. This is because Podman was only aware of machines and the existence of machines within the confines of its default provider–with one or two minor exceptions. Consider the following:

$ podman -v podman version 5.7.0-dev

In Podman 5, the default provider per platform was hardcoded in the Podman binary. It could be overridden in containers.conf. This indicates that we are setting libkrun as the default machine provider.

$ cat ~/.config/containers/containers.conf [machine] provider="libkrun"

Now suppose in Podman Desktop or via other means, we created a machine and we know it is running. To get a global view of all machines in Podman 5, you could use the --all-providers command line switch with podman machine ls.

$ podman machine ls —all-providers NAME VM TYPE CREATED LAST UP CPUS MEMORY DISK SIZE applehv-machine-1 applehv 8 minutes ago Currently running 6 2GiB 100GiB podman-machine-default* libkrun 26 minutes ago 8 minutes ago 6 2GiB 100GiB

... continue reading