Stable Release in branch 6.0
6.0.2
Released 22 Jul 2026
(1 month ago)
SoftwarePodman
Version6.0
Initial release6.0.0
24 Jun 2026
(2 months ago)
Latest release6.0.2
22 Jul 2026
(1 month ago)
End of security fixesTBD
(Supported)
Release noteshttps://github.com/containers/podman/releases
Source codehttps://github.com/containers/podman
Documentationhttps://podman.io/docs/
Downloadhttps://podman.io/docs/installation
Podman 6.0 ReleasesView full list
Breaking Release: Podman 6.0 introduces significant breaking changes and requires compatible versions of Buildah (v1.44.0+), Skopeo (v1.23+), Netavark and Aardvark (v2.0.0+). Multiple platform and feature deprecations have been removed. Plan your upgrade carefully and review breaking changes below.

What Is New in Podman 6.0

Category Highlights
Security
  • Fixed CVE-2026-57231: environment variable leak vulnerability where malicious images using malformed Env entries could expose host variables to containers, including glob operator abuse
New Features
  • Multi-provider podman machine support across all commands regardless of default provider
  • podman machine os update command for in-place VM OS updates
  • podman system hyperv-prep for Windows administrator VM preparation
  • CA certificate importing via --import-native-ca option
  • podman exec --no-session for improved performance when session tracking not needed
  • AMD GPU support via --gpus option
  • Multiple static IP addresses per container (--net mynet:ip=10.0.0.2,ip=10.0.0.3)
  • Artifact lifecycle events (create, pull, push, remove) in event stream
  • Quadlet volume UID/GID/Options configuration and anonymous volume mounting
  • TLS configuration customization via --tls-details option and containers-tls-details.yaml file
  • Network route types: blackhole, unreachable, and prohibit routes
Improvements
  • Network isolation now defaults to enabled, improving Docker compatibility
  • Quadlet architecture redesigned: subdirectories replace .app files for easier manual management
  • Default podman machine provider on macOS changed to libkrun
  • Windows podman machine hyperv provider no longer requires admin for start/stop operations
  • Host user configurations mounted into VMs at /etc/containers for easier config management
  • Rootless port forwarding experimental pasta backend for client IP preservation
  • Experimental nsfs file handle support on Kernel 6.18+ to eliminate pause process
  • Configuration file parsing major rewrite for correctness
  • Docker Compatible API version bumped to v1.44
Breaking Changes
  • Removed: Intel Mac support, Windows 10 support, cgroups v1, iptables, CNI networking, slirp4netns
  • BoltDB databases migrated automatically to SQLite on first start
  • Platform support: requires Go v1.25+ to build
  • podman machine VM volumes on Linux broken, VMs require recreation
  • podman volume prune now only prunes anonymous volumes (use --all for old behavior)
  • Multiple filters now use logical AND instead of OR
  • podman commit now pauses container during commit (use --pause=false to restore old behavior)
  • JSON output format changes in labels for Docker compatibility
  • Go bindings: removed redundant nameOrID parameter from artifacts.Remove()
Bug Fixes
  • Quadlet pod dependency tracking for templated container files
  • Environment secrets persistence across container restarts
  • Healthchecks with --transient-store option
  • Volume mount option leakage between mounts in pods
  • Remote client SSH hostname handling and connectivity
  • Container port conflict detection at creation time
  • Rootless pause process recycling issues
  • 20+ additional fixes for container, pod, network, and API operations

What platforms and features have been removed in Podman 6.0?

Podman 6.0 drops support for Intel-based Macs, Windows 10, cgroups v1 systems, iptables-based networking, CNI plugin architecture, and the slirp4netms rootless network stack. In practice, these removals reflect the consolidation toward modern Linux infrastructure. If your deployment still relies on cgroups v1, you must upgrade your kernel and userspace tools before moving to Podman 6.0. Windows users need Windows 11 or later. The shift to nftables and Netavark represents a significant architectural cleanup -- watch out for any custom networking configuration that depends on iptables hooks.

Intel Mac users will need to stay on Podman 5.x or switch to native Docker Desktop. The decision to drop Intel Mac support aligns with Apple's own direction but represents a breaking change for teams still on Intel hardware. Most enterprise deployments are already on newer architectures, but verify your developer machines and CI/CD infrastructure before upgrading.

How does Podman 6.0 improve machine virtualization and multi-provider support?

Podman 6.0 fundamentally redesigns machine management to operate transparently across providers. Previously, switching between applehv and libkrun on Mac (or hyperv and wsl on Windows) required explicit provider switching. Now all podman machine commands work with any VM from any provider in a single command line. The default provider controls which backend is used for newly-created VMs, but can be overridden per-command with --provider. This matters if your team uses a mix of virtualization backends or if you want to test Podman behavior on different hypervisors without complex tooling.

The new podman machine os update command allows in-place OS updates without destroying and recreating VMs -- a significant operational improvement for stateful machines. Windows administrators benefit from the new podman system hyperv-prep command, which configures host prerequisites for hyperv-based machines without manual setup. VM boot-time CA certificate importing via --import-native-ca ensures containers inherit the host's trusted root store, reducing friction in enterprise environments with internal PKI.

On Linux, host user configurations are now automatically mounted into machines at /etc/containers, allowing you to edit container runtime configuration directly instead of rebuilding the VM. The downside: existing Linux machines have broken volume mounts after upgrade and require recreation. Most teams should script VM deletion and re-initialization as part of the upgrade process.

What changes in Quadlet design and configuration?

Quadlet's architecture has been redesigned to replace the .app file-based tracking system with subdirectory-based organization. Previously, removing a Quadlet required careful management of associated files because the manifest was stored centrally in a single .app file. In Podman 6.0, each Quadlet and its associated files live in a subdirectory, making manual operations and version control much cleaner. This change reduces bugs related to orphaned files and makes Quadlet management more transparent when using podman quadlet install.

Volume configuration has been significantly enhanced. Quadlet .volume units now support UID=, GID=, and Options= keys, allowing fine-grained ownership and capability control without external scripts. Container units can now mount anonymous volumes using Mount= with no source, simplifying temporary storage patterns. Two new search paths have been added -- /usr/share/containers/systemd/users and /usr/share/containers/systemd/users/${UID} -- allowing distributions to package system and user-level Quadlets separately.

The command line interface expanded with podman quadlet ls as an alias for podman quadlet list, plus --noheading and status= filter options for scripting. Most significantly, podman quadlet list now includes pod membership information, making it easier to understand service dependencies when containers are organized into pods.

How does networking improve in Podman 6.0?

Network isolation now defaults to enabled, improving Docker compatibility while increasing security posture. A workaround for the Docker-compatible API related to disabled isolation has been removed, so any custom integration code relying on that behavior will break. The change is correct but requires audit of deployments using the Compat API with explicit isolation=false expectations.

Containers can now bind multiple static IP addresses in the same network via repeated ip= options: podman run --net mynet:ip=10.0.0.2,ip=10.0.0.3,ip=10.0.0.4. Network route types have been expanded to include blackhole, unreachable, and prohibit routes via podman network create --route 10.20.30.40/24,blackhole, enabling complex routing policies and access control directly within Podman networks without external tooling.

For rootless deployments, an experimental pasta backend for port forwarding preserves client source IP in network traffic, solving a longstanding limitation where rootless port forwarding obscured the client identity. This is available via rootless_port_forwarder="pasta" in containers.conf. An experimental feature using nsfs file handles (Kernel 6.18+) eliminates the need for the pause process entirely, reducing resource overhead and simplifying rootless architecture, though this is currently gated behind an environment variable.

What container management and API improvements should operators know about?

Container creation and management have been refined for production use. The podman exec --no-session option disables API session tracking and database operations, improving performance when session overhead is unwanted. The new nocreate volume mount option allows containers to reference volumes that must already exist -- podman run --mount type=volume,src=myvol,dst=/mnt,nocreate -- preventing accidental volume creation when strict infrastructure-as-code is required.

podman commit now pauses containers during the commit operation, preventing concurrent modifications that could produce inconsistent images. The prior non-pausing behavior can be restored with --pause=false if needed. Container output format has been refined: podman image list --format json now includes Repository and Tag fields for easier tooling integration.

The Docker Compatible API has been bumped to v1.44, with numerous endpoint improvements. The Compat List endpoint for Containers now includes health status, the Compat Create endpoint better handles CDI device qualification, and error responses are more correct. The Libpod Pull endpoint can now report progress and returns proper error codes on failure instead of always returning HTTP 200. All API endpoints now handle empty JSON body parameters gracefully instead of erroring.

FAQ

What is the migration path from BoltDB to SQLite in Podman 6.0?
Podman 6.0 automatically migrates BoltDB databases to SQLite on first startup. The migration is transparent and requires no operator action, but backup your data directory before upgrading as a precaution.

Do I need to rebuild containers and images when upgrading to Podman 6.0?
Existing containers and images are compatible with Podman 6.0. However, containers will need to be recreated if they were created with unsupported features like slirp4netms or CNI networking, and podman machine VMs on Linux require recreation due to volume mount changes.

How do I handle the podman volume prune behavior change?
In Podman 6.0, podman volume prune only removes unused anonymous volumes to match Docker behavior. Use podman volume prune --all to prune all unused volumes including named volumes, or podman volume prune --dry-run to preview what would be removed.

Will my Quadlet files work without modification?
Existing Quadlet files will continue to work, but the subdirectory-based tracking system means manually-added files should be reorganized into subdirectories for consistency. The podman quadlet install command will place new files in the correct structure.

What is the performance impact of network isolation defaulting to enabled?
Network isolation defaulting to enabled has negligible performance impact on modern systems and improves security posture by preventing containers from seeing other containers' network traffic by default.

How do I preserve the old podman commit behavior without pausing?
Use podman commit --pause=false to restore the non-pausing behavior of earlier Podman versions if you have containers where pausing is problematic.

Releases In Branch 6.0

VersionRelease date
6.0.222 Jul 2026
(1 month ago)
6.0.108 Jul 2026
(1 month ago)
6.0.024 Jun 2026
(2 months ago)
6.0.0-rc112 Jun 2026
(2 months ago)