Retour aux Actualités
DevOps

Podman 6 : améliorations de l'utilisabilité des machines

7 juin 2026Source

Podman 6 : améliorations de l'utilisabilité des machines

Je voulais introduire un changement significatif que nous faisons en Podman 6 pour notre fonction de machine. Pour comprendre le problème et le changement, nous devons établir que la machine Podman est basée sur un concept de fournisseurs. Le fournisseur est un terme générique qui décrit comment Podman exécute la machine virtuelle Linux. La table suivante est une liste des fournisseurs par plateforme.

Plateforme Fournisseurs supportés
Windows WSL, HyperV
Linux QEMU
MacOS Libkrun, Applehv

En Podman 5, en particulier avec l'utilisation de Podman Desktop et avec les plateformes qui supportent plusieurs fournisseurs, il était possible de créer des machines pour un fournisseur différent sans changer le fournisseur prédefini défini dans ~/.config/containers/containers.conf. Alors si vous avez créé ou exécuté une machine dans un fournisseur non prédefini avec Podman Desktop et puis vous avez décidé d'utiliser la CLI de Podman, la CLI serait ignorante de l'existence de la machine. Cela est dû au fait que Podman n'était conscient que des machines et de l'existence des machines dans les limites de son fournisseur prédefini–avec quelques exceptions mineures.

Considérez le suivant:

$ podman -v
podman version 5.7.0-dev

En Podman 5, le fournisseur prédefini par plateforme était hardcoded dans le fichier bin de Podman. Il pouvait être surchargé dans containers.conf. Cela indique que nous définissons libkrun comme fournisseur de machine prédefini.

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

Supposons maintenant que nous avons créé une machine en Podman Desktop ou par d'autres moyens et que nous savons qu'elle est en cours d'exécution. Pour obtenir une vue globale de toutes les machines en Podman 5, nous pouvons utiliser le flag de ligne de commande --all-providers avec 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

Cependant, en utilisant la CLI de Podman 5, lorsque l'on essaie d'arrêter la machine par son nom, on obtient un erreur comme suit:

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

En Podman 6, nous avons fait un changement explicite pour rendre moins évident le fournisseur de machine. Pour les commandes comme rm, stop, start (et autres), nous voulons que les utilisateurs puissent simplement fournir le nom de la machine et, indépendamment du fournisseur, Podman agira. Et maintenant que notre upstream main branch a changé à Podman 6 développement, j'ai commencé à modifier cette fonction de base.

$ podman -v
podman version 6.0.0-dev

Et maintenant avec Podman 6.

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

Notez également que j'ai supprimé --all-providers du commande de machine mais le comportement par défaut est maintenant de montrer toutes les machines across tous les fournisseurs supportés.

$ 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 deuxième innovation dans ce projet est la création de machines. Cela est fait avec le commande podman machine init. Vous pouvez maintenant créer une machine dans un fournisseur non prédefini en utilisant le nouveau flag de ligne de commande --provider. Considérez ce scénario dans lequel libkrun est le fournisseur prédefini, mais je veux créer une nouvelle machine qui utilise le fournisseur 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

Commentaires (0)

Login or Register to apply