Skip to content

podman

v6.2.0
podman-container-tools/podman

Podman: A tool for managing OCI containers and pods.

Version of podman-container-tools/podman you run

CompareView on GitHub

Supported versions

Source: endoflife.date
LineLatestReleasedSecurity fixes
6.16.1.4Aug 12, 2026Supported
6.06.0.2Jun 24, 2026Ended Aug 12, 2026
5.85.8.10Feb 12, 2026Ended Sep 26, 2026
5.75.7.1Nov 11, 2025Ended Feb 12, 2026
5.65.6.2Aug 15, 2025Ended Nov 11, 2025
5.55.5.2May 13, 2025Ended Aug 15, 2025
5.45.4.2Feb 11, 2025Ended May 13, 2025
5.35.3.2Nov 12, 2024Ended Feb 11, 2025
5.25.2.5Aug 1, 2024Ended Nov 12, 2024
5.15.1.2May 29, 2024Ended Aug 1, 2024
5.05.0.3Mar 19, 2024Ended May 29, 2024
4.94.9.5Jan 22, 2024Ended May 30, 2024

Breaking changes

What to check before upgrading, taken from the notes of the last 30 releases.

  • v5.8.8Sep 29, 2026

    Breaking Changes

    • Removed support for checkpoint images in podman run due to serious security concerns with the different security models of running images and running checkpoints. Checkpoints ignore user-specified security configuration and are very difficult to run safely.
  • v6.1.3Sep 29, 2026

    Breaking Changes

    • Removed support for checkpoint images in podman run due to serious security concerns with the different security models of running images and running checkpoints. Checkpoints ignore user-specified security configuration and are very difficult to run safely.
  • v6.0.0Jun 24, 2026

    Breaking Changes

    • Due to breaking changes in this release, Podman v6.0.0 must be used with Buildah v1.44.0, Skopeo v1.23, Netavark and Aardvark v2.0.0, and configuration files from the container-libs repository's common/v0.68.0 release.
    • Support for BoltDB databases has been dropped. Starting Podman 6 when the BoltDB database is in use will have Podman attempt an automatic migration from BoltDB to SQLite.
    • Support for running on Intel Macs has been removed.
    • Support for running on Windows 10 has been removed.
    • Support for running on cgroups v1 systems has been removed. Please update your system to use cgroups v2.
    • Support for running on iptables has been removed. Please use nftables instead.
    • Support for CNI networking has been removed. Please use Netavark instead.
    • Support for the slirp4netns rootless network stack has been removed. Please use Pasta instead. As part of this, the --network-cmd-path global option, only used with slirp4netns, has been removed.
    • Podman's configuration file parsing logic has seen a major rewrite. Please see this document for exact details.
    • Podman's import path has changed from github.com/containers/podman/v5 to go.podman.io/podman/v6 as part of our move into a CNCF-owned GitHub organization.
    • Network isolation now defaults to enabled, improving Docker compatibility and security. A special workaround for the Docker-compatible API related to isolation being disabled has been removed (#27349).
    • The way the podman quadlet suite of commands functions has been changed. Previously, Quadlets and their associated files were tracked using a .app file, ensuring that removing a Quadlet also removed all associated non-Quadlet files. Now, Quadlets and associated files are placed in subdirectories, which should reduce bugs and make manual management of Quadlets added by podman quadlet install much easier.
    • VMs made by podman machine on Linux now mount volumes from the host using systemd. Volume mounts on existing podman machine VMs on Linux have been broken by this change, and the VM will need to be recreated.
    • The podman volume prune command now matches Docker's behavior by only pruning unused anonymous volumes. Please use the newly-added --all option for the previous behavior (pruning all volumes).
    • The podman volume list command now combines multiple filters using logical AND instead of logical OR (meaning all filters must match for a container to be included in output) (#26786).
    • The label!= filter used in many commands now combines the output of multiple instances of the filter with logical AND instead of logical OR.
    • The --format='{{json .Labels}} option to the podman ps, podman pod ps, and podman volume ls commands now prints its output as comma-separated key=value pairs instead of as a JSON map, improving Docker compatibility (#21847).
    • The --all-providers option to podman machine list has been removed, as machines from all providers can now be accessed by all commands.
    • The MemorySwappiness field of podman inspect is now set to nil when not explicitly set by the user (instead of -1), improving Docker compatibility (#23824).
    • The podman commit command now pauses the container while committing changes, improving security by restricting concurrent modification. The prior behavior can be restored by using podman commit --pause=false ....
    • The Go bindings for the REST API have removed the redundant nameOrID parameter from the artifacts.Remove() function.
    • The minimum Go version required to build Podman is now v1.25.

Release history

All releases on GitHub
BadgeLatest version of podman-container-tools/podman[![version](/badge/podman-container-tools/podman)](/p/podman-container-tools/podman)

Security

  • Addresses CVE-2026-121885, untrusted image labels could be used to trick podman auto-update into restarting incorrect systemd units GHSA-55rm-rwr7-q2wr.
  • Addresses CVE-2026-111361, malicious containers images could be able to bypass Digest and Signature validation GHSA-pggw-qqjf-6cxw.
  • Addresses CVE-2026-123876, default seccomp profile socket deny rule could be bypass by a malicious container.

Features

  • The podman push command now supports a new option, --platform, which selects and pushes a single platform-specific manifest instead of the entire list.
  • The podman kube play command now supports a new option, --validate, which determines how unrecognized YAML fields are handled (#18332).
  • The podman kube play command now supports a new option, --label, to set labels on created containers, pods, volumes, and secrets (#26450).
  • The podman kube play command can now create multiple pods if more than 1 replica is requested by a deployment using the new --multiple-pods option (#26769).
  • The podman kube play --build command now supports building images from subdirectories of the main context directory (#28148).
  • Quadlet .container files now support a new key, Umask, to set the default umask for the created container (#25278).
  • All Quadlet files now support a new key, SetMountsDependency, configuring whether the generated unit will use RequiresMountsFor, WantsMountsFor, or no dependency at all on required source paths (#29946).
  • The podman farm list command now supports two new options, --quiet, which will print only the names of active farms, and --noheading, which omits column headers from the output.
  • The podman artifact ls command now supports two new options, --format=json, which will output machine-readable JSON, and --quiet, which prints only artifact digests.
  • The podman create command now supports a new option, --passwd, to add entries to /etc/passwd in the container (this has previously been available with podman run).
  • The podman info command now includes detailed information on the features supported by OCI runtimes.
  • The podman events --filter command now supports a new filter, network=, to filter to events pertaining to a specific network (#29387).
  • The podman auto-update command has been enabled on the remote Podman client.
  • The StartInterval field in image healthcheck configuration is now respected, allowing images to configure startup healthchecks (#27724).
  • The podman image scp command now supports two new options, --compression-format and --compression-level, to compress data during transfer (#23192).
  • The podman auto-update command now supports a new option, --filter, to selectively update only containers that match the given filters.
  • The podman ps --sort command now allows sorting by pod.
  • The podman ps --filter command now supports a new filter, status!, which matches containers not in the given state (#21398).

Changes

  • Podman now requires Go v1.26 or higher to build.
  • The Podman machine WSL provider now has native systemd support, existing machines continue to be supported for now with our old custom systemd setup. We require at least WSL version 2.5.1 now, although we recommend using at least 2.7.5 for proper nftables networking support.
  • The podman kube play command now uses the securityContext.seccompProfile fields in Kubernetes YAML for Seccomp configuration. Support for the existing annotation-based configuration of Seccomp is now deprecated, and will be removed with Podman 7.0.
  • The podman inspect command on containers now includes three new fields, DNSNames (containing all names the container can be accessed via), IsInitCtr (whether the container is an init container), and InitContainerType (what type of init container this is, if it is one) (#29811).
  • The podman inspect command on containers now only includes user-added DNS aliases in the Aliases field, which previously displayed all DNS aliases, improving Docker compatibility.
  • The podman inspect command on containers now properly populates the ConsoleSize field for running containers (#28368).
  • Systemd units created by Podman healthchecks are now named much more clearly (libpod-healthcheck-$CONTAINERID-$randsuffix.service) (#29373).
  • Signal proxying is now enabled for attached podman exec commands. As such, killing a podman exec command with Control-C or similar should now also kill the processes started in the container (similar to how podman run already works) (#19486).
  • The deprecated --cpu-rt-period and --cpu-rt-runtime options for podman create, podman run, podman update, and podman container clone are now hidden and undocumented. They have not been functional since the removal of cgroups v1 support and will be removed entirely in Podman v7.
  • The --health-startup-interval option to podman create, podman run, and podman update has a new alias, --health-start-interval.
  • When a startup healthcheck interval is specified, but no startup healthcheck command, the standard healthcheck command will be used instead.
  • When using the journald event driver, timestamps are no longer included in logged events, as journald includes a timestamp already (#29835).
  • Quadlet can now create template instances from instance-specific drop-in directories without requiring an explicit instance file or symlink (#27636).

Bugfixes

  • Fixed a bug where passing an empty file to the --ignorefile option to podman build would cause the .dockerignore or .containerignore file in the context directory to be used, instead of not using an ignorefile at all (#25147).
  • Fixed a bug where the Pod= key in Quadlet .container files did not expand the %N specifier (#29108).
  • Fixed a bug where containers created with --userns=auto would report having a private user namespace in podman inspect after they started, but not when they were first created.
  • Fixed a bug where logging was configured too late in the Podman init process to print errors from parsing configuration files (#25362).
  • Fixed a bug where the podman system prune --build command could fail if a build container was removed while it was running.
  • Fixed a bug where copy events from podman machine cp were not properly displayed by the remote Podman client.
  • Fixed a bug where the podman farm build --tag command would fail if given a tag including a colon (#25039).
  • Fixed a bug where the podman machine init --image command would fail when given a read-only disk image.
  • Fixed a bug where the podman machine start and podman machine init --now commands could hang on Windows systems using the Hyper-V provider if the VM failed to start (#29455).
  • Fixed a bug where the podman machine start command on Windows (both Hyper-V and WSL providers) would sometimes fail due to leftover processes from previous machines (#29474).
  • Fixed a bug where the podman machine start command could hang indefinitely if the VM failed to start properly (#29880).
  • Fixed a bug where the podman machine start command could create a VM that cannot be connected to on Windows if the host was shut down or restarted when the VM was running (#29971).
  • Fixed a bug where the podman machine init command on Windows when using the Hyper-V provider did not correctly detach the file server process, causing VMs to lose access to host shares when the console that ran podman machine init closed (#29573).
  • Fixed a bug where the podman kube play command incorrectly handled emptyDir volumes with medium: Memory, causing them to not be shared between containers in the pod and to ignore the sizeLimit parameter (#29555).
  • Fixed a bug where the remote Podman client's podman kube play command incorrectly handled authentication credentials in API requests.
  • Fixed a bug where volumes created by the podman volume import command would not adjust their permissions on being mounted into a container (#25442).
  • Fixed a bug where the podman build command could leak temporary directories if a build failed (#22642).
  • Fixed a bug where containers created with --userns=keep-id would use an image-specified user instead of forcing the same UID/GID in use on the host (#29600).
  • Fixed a bug where the remote Podman client could not function when connecting over SSH to a server which does not support the direct-streamlocal channel type (#27814).
  • Fixed a bug where the remote Podman client's podman push, podman artifact push, and podman manifest push commands would push an unsigned image instead of failing when the --sign-by or --sign-by-sigstore-private-key options were used.
  • Fixed a bug where creating a container with --userns=auto that had overlay volume mounts would fail (#28758).
  • Fixed a bug where volume subpaths including a = character in the path were handled incorrectly.

Full release notesCompare with previous