podman
v6.2.0Podman: A tool for managing OCI containers and pods.
- Maintenance
- Active672 commits in 3 months · bus factor 3
- License
- Apache-2.0Permissive · OSI-approved
- Security
- 11 advisories1 critical, 4 high, 4 medium, 2 low
- Supported versions
- 1 line supportednewest 6.1 · 11 ended
33.3k stars · 3.5k forks · 1k open issues · last release 4 days ago · data checked 5 hours ago
Supported versions
Source: endoflife.date| Line | Latest | Released | Security fixes |
|---|---|---|---|
| 6.1 | 6.1.4 | Aug 12, 2026 | Supported |
| 6.0 | 6.0.2 | Jun 24, 2026 | Ended Aug 12, 2026 |
| 5.8 | 5.8.10 | Feb 12, 2026 | Ended Sep 26, 2026 |
| 5.7 | 5.7.1 | Nov 11, 2025 | Ended Feb 12, 2026 |
| 5.6 | 5.6.2 | Aug 15, 2025 | Ended Nov 11, 2025 |
| 5.5 | 5.5.2 | May 13, 2025 | Ended Aug 15, 2025 |
| 5.4 | 5.4.2 | Feb 11, 2025 | Ended May 13, 2025 |
| 5.3 | 5.3.2 | Nov 12, 2024 | Ended Feb 11, 2025 |
| 5.2 | 5.2.5 | Aug 1, 2024 | Ended Nov 12, 2024 |
| 5.1 | 5.1.2 | May 29, 2024 | Ended Aug 1, 2024 |
| 5.0 | 5.0.3 | Mar 19, 2024 | Ended May 29, 2024 |
| 4.9 | 4.9.5 | Jan 22, 2024 | Ended 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 rundue 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.
- Removed support for checkpoint images in
- v6.1.3Sep 29, 2026
Breaking Changes
- Removed support for checkpoint images in
podman rundue 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.
- Removed support for checkpoint images in
- 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-pathglobal option, only used withslirp4netns, 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/v5togo.podman.io/podman/v6as 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 quadletsuite of commands functions has been changed. Previously, Quadlets and their associated files were tracked using a.appfile, 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 bypodman quadlet installmuch easier. - VMs made by
podman machineon Linux now mount volumes from the host using systemd. Volume mounts on existingpodman machineVMs on Linux have been broken by this change, and the VM will need to be recreated. - The
podman volume prunecommand now matches Docker's behavior by only pruning unused anonymous volumes. Please use the newly-added--alloption for the previous behavior (pruning all volumes). - The
podman volume listcommand now combines multiple filters using logicalANDinstead of logicalOR(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 logicalANDinstead of logicalOR. - The
--format='{{json .Labels}}option to thepodman ps,podman pod ps, andpodman volume lscommands now prints its output as comma-separatedkey=valuepairs instead of as a JSON map, improving Docker compatibility (#21847). - The
--all-providersoption topodman machine listhas been removed, as machines from all providers can now be accessed by all commands. - The
MemorySwappinessfield ofpodman inspectis now set tonilwhen not explicitly set by the user (instead of-1), improving Docker compatibility (#23824). - The
podman commitcommand now pauses the container while committing changes, improving security by restricting concurrent modification. The prior behavior can be restored by usingpodman commit --pause=false .... - The Go bindings for the REST API have removed the redundant
nameOrIDparameter from theartifacts.Remove()function. - The minimum Go version required to build Podman is now v1.25.
Release history
All releases on GitHubAtom feed/feed/podman-container-tools/podman
Badge
[](/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 pushcommand now supports a new option,--platform, which selects and pushes a single platform-specific manifest instead of the entire list. - The
podman kube playcommand now supports a new option,--validate, which determines how unrecognized YAML fields are handled (#18332). - The
podman kube playcommand now supports a new option,--label, to set labels on created containers, pods, volumes, and secrets (#26450). - The
podman kube playcommand can now create multiple pods if more than 1 replica is requested by a deployment using the new--multiple-podsoption (#26769). - The
podman kube play --buildcommand now supports building images from subdirectories of the main context directory (#28148). - Quadlet
.containerfiles 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 useRequiresMountsFor,WantsMountsFor, or no dependency at all on required source paths (#29946). - The
podman farm listcommand 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 lscommand now supports two new options,--format=json, which will output machine-readable JSON, and--quiet, which prints only artifact digests. - The
podman createcommand now supports a new option,--passwd, to add entries to/etc/passwdin the container (this has previously been available withpodman run). - The
podman infocommand now includes detailed information on the features supported by OCI runtimes. - The
podman events --filtercommand now supports a new filter,network=, to filter to events pertaining to a specific network (#29387). - The
podman auto-updatecommand has been enabled on the remote Podman client. - The
StartIntervalfield in image healthcheck configuration is now respected, allowing images to configure startup healthchecks (#27724). - The
podman image scpcommand now supports two new options,--compression-formatand--compression-level, to compress data during transfer (#23192). - The
podman auto-updatecommand now supports a new option,--filter, to selectively update only containers that match the given filters. - The
podman ps --sortcommand now allows sorting by pod. - The
podman ps --filtercommand 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 playcommand now uses thesecurityContext.seccompProfilefields 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 inspectcommand 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), andInitContainerType(what type of init container this is, if it is one) (#29811). - The
podman inspectcommand on containers now only includes user-added DNS aliases in theAliasesfield, which previously displayed all DNS aliases, improving Docker compatibility. - The
podman inspectcommand on containers now properly populates theConsoleSizefield 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 execcommands. As such, killing apodman execcommand with Control-C or similar should now also kill the processes started in the container (similar to howpodman runalready works) (#19486). - The deprecated
--cpu-rt-periodand--cpu-rt-runtimeoptions forpodman create,podman run,podman update, andpodman container cloneare 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-intervaloption topodman create,podman run, andpodman updatehas 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
journaldevent driver, timestamps are no longer included in logged events, asjournaldincludes 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
--ignorefileoption topodman buildwould cause the.dockerignoreor.containerignorefile 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.containerfiles did not expand the%Nspecifier (#29108). - Fixed a bug where containers created with
--userns=autowould report having aprivateuser namespace inpodman inspectafter 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 --buildcommand could fail if a build container was removed while it was running. - Fixed a bug where
copyevents frompodman machine cpwere not properly displayed by the remote Podman client. - Fixed a bug where the
podman farm build --tagcommand would fail if given a tag including a colon (#25039). - Fixed a bug where the
podman machine init --imagecommand would fail when given a read-only disk image. - Fixed a bug where the
podman machine startandpodman machine init --nowcommands could hang on Windows systems using the Hyper-V provider if the VM failed to start (#29455). - Fixed a bug where the
podman machine startcommand 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 startcommand could hang indefinitely if the VM failed to start properly (#29880). - Fixed a bug where the
podman machine startcommand 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 initcommand 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 ranpodman machine initclosed (#29573). - Fixed a bug where the
podman kube playcommand incorrectly handledemptyDirvolumes withmedium: Memory, causing them to not be shared between containers in the pod and to ignore thesizeLimitparameter (#29555). - Fixed a bug where the remote Podman client's
podman kube playcommand incorrectly handled authentication credentials in API requests. - Fixed a bug where volumes created by the
podman volume importcommand would not adjust their permissions on being mounted into a container (#25442). - Fixed a bug where the
podman buildcommand could leak temporary directories if a build failed (#22642). - Fixed a bug where containers created with
--userns=keep-idwould 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, andpodman manifest pushcommands would push an unsigned image instead of failing when the--sign-byor--sign-by-sigstore-private-keyoptions were used. - Fixed a bug where creating a container with
--userns=autothat had overlay volume mounts would fail (#28758). - Fixed a bug where volume subpaths including a
=character in the path were handled incorrectly.