Zurück zu Nachrichten
DevOps

Podman 6: Verbesserungen in der Nutzbarkeit von Maschinen

7. Juni 2026Quelle

Podman 6: Verbesserungen in der Nutzbarkeit von Maschinen

Ich wollte einen bedeutenden Wechsel einführen, den wir in Podman 6 für unsere Maschinenfunktion durchführen. Um das Problem und den Wechsel zu verstehen, müssen wir feststellen, dass die Podman-Maschine auf einem Konzept von Providern basiert. Der Provider ist ein allgemeiner Begriff, der beschreibt, wie Podman die Linux-Virtualmaschine ausführt. Die folgende Tabelle ist eine Liste der Providern nach Plattform.

Plattform Unterstützte Providern
Windows WSL, HyperV
Linux QEMU
MacOS Libkrun, Applehv

In Podman 5, insbesondere mit der Verwendung von Podman Desktop und mit Plattformen, die mehrere Providern unterstützen, war es möglich, Maschinen für einen anderen Provider zu erstellen, ohne den vordefinierten Provider in ~/.config/containers/containers.conf zu ändern. Also, wenn du eine Maschine in einem nicht vordefinierten Provider mit Podman Desktop erstellt hast und dann die Podman-CLI verwendet hast, war die CLI unbewusst von der Existenz der Maschine. Dies liegt daran, dass Podman nur von Maschinen und der Existenz von Maschinen innerhalb der Grenzen seines vordefinierten Providers wusste–mit einigen kleineren Ausnahmen.

Betrachten Sie folgendes:

$ podman -v
podman version 5.7.0-dev

In Podman 5 war der vordefinierte Provider pro Plattform im Podman-Binärdatei hardcoded. Es konnte in containers.conf überschrieben werden. Dies zeigt, dass wir libkrun als vordefinierten Maschinenprovider setzen.

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

Nehmen wir an, dass wir in Podman Desktop oder über andere Mittel eine Maschine erstellt haben und wissen, dass sie läuft. Um eine globale Sicht aller Maschinen in Podman 5 zu erhalten, konnten wir den Flag --all-providers mit podman machine ls verwenden.

$ 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

Allerdings verwendet die Podman-CLI 5, wenn man versucht, die Maschine durch ihren Namen zu beenden, einen Fehler wie folgt:

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

In Podman 6 haben wir einen expliziten Wechsel vorgenommen, um den Provider der Maschine weniger prominent zu machen. Für Befehle wie rm, stop, start (und andere) möchten wir, dass die Benutzer einfach den Namen der Maschine angeben und, unabhängig vom Provider, Podman handeln. Und jetzt, dass unser upstream main branch zu Podman 6 umgeschaltet hat, habe ich begonnen, diese Basisfunktion zu ändern.

$ podman -v
podman version 6.0.0-dev

Und jetzt mit Podman 6.

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

Auch beachte, dass ich --all-providers aus dem Maschinenkommando entfernt habe, aber der Standardverhalten ist jetzt, alle Maschinen über alle unterstützten Providern anzuzeigen.

$ 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

Die zweite Innovation in diesem Projekt ist die Erstellung von Maschinen. Dies wird mit dem Befehl podman machine init durchgeführt. Du kannst jetzt eine Maschine in einem nicht vordefinierten Provider erstellen, indem du den neuen Flag --provider verwendest. Überlege dir dieses Szenario, in dem libkrun der vordefinierte Provider ist, aber ich möchte eine neue Maschine erstellen, die den Provider applehv verwendet.

$ 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

Kommentare (0)

Login or Register to apply