Volver a Noticias
DevOps

Podman 6: mejoras en la usabilidad de las máquinas

7 de junio de 2026Fuente

Podman 6: mejoras en la usabilidad de las máquinas

Quería introducir un cambio significativo que estamos haciendo en Podman 6 para nuestra función de máquina. Para entender el problema y el cambio, debemos establecer que la máquina Podman está basada en un concepto de proveedores. El proveedor es un término genérico que describe cómo Podman ejecuta la máquina virtual Linux. La siguiente tabla es una lista de proveedores por plataforma.

Plataforma Proveedores soportados
Windows WSL, HyperV
Linux QEMU
MacOS Libkrun, Applehv

En Podman 5, en particular con el uso de Podman Desktop y con las plataformas que soportan múltiples proveedores, era posible crear máquinas para un proveedor diferente sin cambiar el proveedor predeterminado definido en ~/.config/containers/containers.conf. Entonces si creaste o ejecutaste una máquina en un proveedor no predeterminado con Podman Desktop y luego decidiste utilizar la CLI de Podman, la CLI sería ignorante de la existencia de la máquina. Esto se debe a que Podman solo era consciente de las máquinas y la existencia de las máquinas dentro de los límites de su proveedor predeterminado–con algunas excepciones menores.

Considera el siguiente:

$ podman -v
podman version 5.7.0-dev

En Podman 5, el proveedor predeterminado por plataforma estaba hardcoded en el binario de Podman. Pudo ser sobrescrito en containers.conf. Esto indica que estamos estableciendo libkrun como proveedor de máquina predeterminado.

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

Supongamos ahora que en Podman Desktop o mediante otros medios hemos creado una máquina y sabemos que está en ejecución. Para obtener una visión global de todas las máquinas en Podman 5, podríamos utilizar el flag de línea de comandos --all-providers con 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

Sin embargo, utilizando la CLI de Podman 5, cuando se intenta detener la máquina con el nombre se obtiene un error como el siguiente:

$ podman machine stop applehv-machine-1
Error: applehv-machine-1: VM does not exist

En Podman 6, hemos hecho un cambio explícito para hacer menos prominente el proveedor de máquina. Para comandos como rm, stop, start (y otros), queremos que los usuarios puedan simplemente proporcionar el nombre de la máquina y, independientemente del proveedor, Podman actuará. Y ahora que nuestro upstream main branch ha cambiado a Podman 6 desarrollo, he comenzado a modificar esta función base.

$ podman -v
podman version 6.0.0-dev

Y ahora con Podman 6.

$ podman machine stop applehv-machine-1
Machine "applehv-machine-1" stopped successfully

También nota que he eliminado --all-providers del comando de máquina pero el comportamiento predeterminado es ahora mostrar todas las máquinas across todos los proveedores soportados.

$ podman machine ls
NAME                     VM TYPE     CREATED         LAST UP         CPUS        MEMORY      DISK SIZE
applehv-machine-1        applehv     8 minutes ago   15 seconds ago  6           2GiB        100GiB
podman-machine-default*  libkrun     27 minutes ago  9 minutes ago   6           2GiB        100GiB

La segunda innovación en este trabajo es alrededor de la creación de máquinas. Esto se hace con el comando podman machine init. Puedes ahora crear una máquina en un proveedor no predeterminado con el nuevo flag de línea de comandos --provider. Considera este caso en el que libkrun es el proveedor predeterminado, pero quiero crear una nueva máquina que utilice el proveedor applehv.

$ podman machine init --now --provider applehv applehv-machine-2
Looking up Podman Machine image at quay.io/podman/machine-os:6.0 to create VM
Extracting compressed file: applehv-machine-2-arm64.raw: done
Machine init complete
Starting machine "applehv-machine-2"
… <omited for brevity>
Machine "applehv-machine-2" started succe

Comentarios (0)

Login or Register to apply