Releases: podman-container-tools/podman
Releases · podman-container-tools/podman
v6.0.0-RC1
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 SQLite to BoltDB.
- 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.
Features
- All
podman machinecommands can now operate on VMs from all providers, regardless of what the current provider is set to. The provider set in the configuration only determines the provider used by newly-created VMs, and can be overridden by the newpodman machine init --provideroption. This should make operation of Mac and Windows installs mixing use ofapplehvandlibkrunVMs, orhypervandwslVMs, much easier. - A new command has been added,
podman machine os update, which updates the operating system of apodman machineVM. Please note that this is not supported with thewslprovider. - A new command has been added,
podman system hyperv-prep, allowing Windows administrators to prepare a host for their users to runpodman machineVMs using thehypervprovider. - When starting a VM with
podman machine startandpodman machine init --now, if the connection to that VM is not the default, users will be prompted whether they want to change the default to the machine that was just started. This can also be controlled by a new option,--update-connection, which controls whether the default will be updated. If the--update-connectionoption is set, a user-interactive prompt is not displayed. - The
podman machine initandpodman machine setcommands now support a new option,--import-native-ca, which, when set, causespodman machineVMs on Windows, Linux, and Mac to import the host's trusted CA certificates each time the VM boots. - The
podman execcommand now has a new option,--no-session, disabling API session tracking and database operations to increase performance (#26727). - The
podman image list --format jsoncommand now includes two new fields for each image,RepositoryandTag(#27632). - The manpages for Quadlets have been split into multiple files, one for each type of Quadlet file, and should be much more readable.
- Quadlet
.volumeunits now support three new keys,UID=andGID=(to set the UID and GID that the volume will be created with) andOptions=(to set generic volume options). - Quadlet
.containerunits now support mounting anonymous volumes (using aMount=key with no source specified) (#28497). - Two new search paths for Quadlets have been added,
/usr/share/containers/systemd/usersand/usr/share/containers/systemd/users/${UID}, to allow distributions to more easily package and distribute Quadlets (#27843). - The
podman quadlet listcommand now has a new alias,podman quadlet ls. - The
podman quadlet listcommand now has a new option,--noheading, which disables printing the table header. This is set automatically if the--formatoption is used. - The
pomdan quadlet listcommand now includes a new field in its output,Pod, which prints the pod a Quadlet.containerunit is part of. - The
podman quadlet listcommand's--filteroption now supports a new filter,status=(#28369). - The
--gpusoption topodman createandpodman runis now compatible with AMD GPUs. - The
podman create,podman run, andpodman pod createcommands can now specify volumes with a new option,nocreate(e.g.podman run --mount type=volume,src=myvol,dst=/mnt,nocreate) which will error if the specified volume does not exist, instead of creating it. - The
--log-optoption to thepodman runandpodman createnow supports a new option,label=, to attach additional labels to logged messages (only usable with thejournaldlog driver). - Many Podman commands now expose a
--tls-detailsoption, allowing custom tuning of TLS settings using acontainers-tls-details.yaml(5)file. - The
diedevent for Containers now exposes a new attribute,OOMKilled, which (if set) indicates the container was stopped due to running out of memory (#26701). - Containers can now set multiple static IP addresses by passing the
ip=option to--netmultiple times (e.g.--net mynet:ip=10.0.0.2,ip=10.0.0.3,ip=10.0.0.4). - The
podman volume prunecommand now includes a new option,--all, to prune all unused volumes, not just anonymous volumes (#24597). - The
podman volume prunecommand now includes a new option,--dry-run, which returns the volumes that would be removed but does not actually remove them (#27838). - The
podman image scpcommand now includes a new option,--format, to set the archive format used for the image transfer (#28183). - A new field has been added to
containers.conf,default_host_ips, to set the default host IP that ports are forwarded from if an IP is not specified by the user (#27186). - The
podman image trustsuite of commands now support a new--signature-policyoption, which is mandatory forpodman image trust set. - Events now include artifact lifecycle events (
create,pull,push, andremove) (#27260). - A new experimental option for the
rootless_port_forwarderfield incontainers.confhas been added,rootless_port_forwarder="pasta". When set, rootless bridge networks will use Pasta's kernel-level port forwarding via Pesto instead of rootlessport, preserving the original client source IP in network traffic in rootless containers. The default remainsrootlessport(the default for Podman 5.x), but we will investigate switching at a later date when stability is more certain. - A new fil...
v5.8.3
Security
- This release addresses CVE-2026-44517, where building a Dockerfile using a
ADDorCOPYinstruction accessing a malicious Git repository or tar archive could cause files outside the build context directory to be included in the build context or copied into the build. Please see GHSA-49p4-px3h-rq49 for more details.
Misc
- Updated Buildah to v1.43.2
- Updated gvisor-tap-vsock to v0.8.9
v5.8.2
Security
- This release addresses CVE-2026-33414, where the
podman machine init --imagecommand when run on Windows using the Hyper-V backend can run PowerShell-escaped commands from the user-specified image path on in a PowerShell session on the host (GHSA-hc8w-h2mf-hp59).
Bugfixes
- Fixed a bug where containers with the
unless-stoppedrestart policy would not restart after a reboot whenpodman-restart.servicewas enabled (#28152). - Fixed a bug where setting
Entrypoint=""in a Quadlet.containerfile did not clear the container's entrypoint (#28213). - Fixed a bug where setting a
HealthCmdin a Quadlet.containerfile to a command that included double-quotes (") would result in a nonfunctional healthcheck due to a parsing issue (#28409). - Fixed a bug where FreeBSD systems could panic when inspecting containers created with the
hostnetwork mode (#28289).
API
- Fixed a bug where the Libpod System Check endpoint could perform operations with bad data after returning a 400 error (#28350).
- Fixed a bug where the remote attach API for containers (Libpod & Compat) could panic due to a rare race condition (#28277).
- Fixed a bug where the Secret Create API could not create functional secrets using the
shelldriver due to options from the default driver being improperly added.
Misc
- Updated Buildah to v1.43.1
- Updated the containers/common library to v0.67.1
- Updated the containers/image library to v5.39.2
v5.8.1
Bugfixes
- Fixed a critical bug where automatic migration from BoltDB to SQLite after a reboot could perform a partial migration, with some containers in SQLite and some remaining in BoltDB, when Quadlets were in use (#28215). For those who encountered this bug with 5.8.0 there is no way to automatically recover. If you do not have persistent containers/pods/volumes (i.e. all containers are run using Quadlets) then the easiest option is to move the
db.sqlfile in Podman's storage directory todb.sql.bak(or similar) and reboot again with v5.8.1 to attempt another migration. Please contact the maintainers with any issues during migration and we will assist as able.
v5.8.0
Features
- The
podman quadlet installcommand can now install files which contain multiple separate Quadlet files. The files must be separated with a---delimeter on a new line, and each section must begin with a# FileName=<name>line to name the new Quadlet (#27384). - Quadlet
.containerfiles now support a new key,AppArmor, for configuring the container's AppArmor profile (#27095). - When running the
podman artifact addcommand against apodman machineVM, if the path being loaded or built is shared into the VM, Podman will load it from the VM's filesystem instead of streaming the data through the REST API, improving performance (#26321). - The
podman updatecommand now features a new option,--ulimit, to update container ulimits (#26381). - The
podman execcommand now features a new option,--no-session, which disables tracking of the exec session to improve performance and startup time (#26588).
Changes
- Podman will now automatically attempt to migrate legacy BoltDB databases to SQLite when the system reboots. This is necessary as support for BoltDB will be removed in Podman 6.0 in May. If automatic migration is not possible, a new option,
podman system migrate --migrate-db, will manually force a migration. - The
podman secret create -command no longer requires that the secret be provided through a pipe, and instead allows typing the secret through the terminal (#27879).
Bugfixes
- Fixed a bug where containers created by
podman play kubewith a healthcheck using theinitialDelaySecondsoption would run healthchecks before the initial delay had expired (#27678). - Fixed a bug where healthchecks would sometimes fail to execute due to systemd rate limits.
- Fixed a bug where the
podman exportcommand would emit aMountevent instead of anExportevent. - Fixed a bug where the
podman kube playcommand incorrectly handled precedence between environment variables set by both theenvFromandenvfields (#27287). - Fixed a bug where the
podman kube playcommand would panic when parsing Pod YAML missing theimagefield (#27784). - Fixed a bug where the
podman volume mountcommand returned empty paths when volumes were handled by a plugin driver (#27858). - Fixed a bug where containers created with
--rootfsinstead of from an image would show that they had a healthcheck in thestartingstate even if no healthcheck was defined (#27651). - Fixed a bug where the
podman buildcommand's--pull=neweroption did not function correctly (#22845). - Fixed a bug where the
RequiresMountsForfield in Quadlet.containerfiles incorrectly handled bind-mount paths which contained spaces. - Fixed a bug where the remote Podman client's
podman run --detach-keysoption did not accept an empty string (IE, no detach keys) (#27414). - Fixed a bug where the remove Podman client's
podman build --secret ... env=VARoption would incorrectly try to read the environment variable on the server side, instead of from the client (#27494). - Fixed a bug where the
podman artifact pushandpodman artifact pullcommands ignored authentication credentials given by the--authfileoption (#27421). - Fixed a bug where Windows paths were incorrectly handled under some circumstances when using the HyperV machine provider (#27571).
- Fixed a bug where the
podman run --pod-id-fileoption was not properly validated, allowing the creation of containers in pods with improper user namespace configuration (#26848).
API
- Added new APIs for interacting with Quadlets, including
GET /libpod/quadlets/{name}/file(print contents of a Quadlet file),GET /libpod/quadlets/{name}/exists(check if the given Quadlet exists),POST /libpod/quadlets(install one or more Quadlets),DELETE /libpod/quadlets(remove one or more Quadlets), andDELETE /libpod/quadlets/{name}(remove a single Quadlet). - Fixed a bug where the Compat and Libpod Logs endpoints for Containers did not use nanosecond-level precision for reported timestamps (#27961).
- Fixed a bug where the Compat Create endpoint for Containers incorrectly handled healthcheck commands with arguments containing spaces (#26519).
- Fixed a bug where the Compat Remove endpoint for Secrets was misnamed as
DELETE /secret/{name}instead ofDELETE /secrets/{name}(#27548).
Misc
- Updated Buildah to v1.43.0
- Updated the containers/storage library v1.62.0
- Updated the containers/image library to v5.39.1
- Updated the containers/common library to v0.67.0
v5.8.0-RC1
Features
- The
podman quadlet installcommand can now install files which contain multiple separate Quadlet files. The files must be separated with a---delimeter on a new line, and each section must begin with a# FileName=<name>line to name the new Quadlet (#27384). - Quadlet
.containerfiles now support a new key,AppArmor, for configuring the container's AppArmor profile (#27095). - When running the
podman artifact addcommand against apodman machineVM, if the path being loaded or built is shared into the VM, Podman will load it from the VM's filesystem instead of streaming the data through the REST API, improving performance (#26321). - The
podman updatecommand now features a new option,--ulimit, to update container ulimits (#26381). - The
podman execcommand now features a new option,--no-session, which disables tracking of the exec session to improve performance and startup time (#26588).
Changes
- The
podman secret create -command no longer requires that the secret be provided through a pipe, and instead allows typing the secret through the terminal (#27879).
Bugfixes
- Fixed a bug where containers created by
podman play kubewith a healthcheck using theinitialDelaySecondsoption would run healthchecks before the initial delay had expired (#27678). - Fixed a bug where healthchecks would sometimes fail to execute due to systemd rate limits.
- Fixed a bug where the
podman exportcommand would emit aMountevent instead of anExportevent. - Fixed a bug where the
podman kube playcommand incorrectly handled precedence between environment variables set by both theenvFromandenvfields (#27287). - Fixed a bug where the
podman kube playcommand would panic when parsing Pod YAML missing theimagefield (#27784). - Fixed a bug where the
podman volume mountcommand returned empty paths when volumes were handled by a plugin driver (#27858). - Fixed a bug where containers created with
--rootfsinstead of from an image would show that they had a healthcheck in thestartingstate even if no healthcheck was defined (#27651). - Fixed a bug where the
podman buildcommand's--pull=neweroption did not function correctly (#22845). - Fixed a bug where the
RequiresMountsForfield in Quadlet.containerfiles incorrectly handled bind-mount paths which contained spaces. - Fixed a bug where the remote Podman client's
podman run --detach-keysoption did not accept an empty string (IE, no detach keys) (#27414). - Fixed a bug where the remove Podman client's
podman build --secret ... env=VARoption would incorrectly try to read the environment variable on the server side, instead of from the client (#27494). - Fixed a bug where the
podman artifact pushandpodman artifact pullcommands ignored authentication credentials given by the--authfileoption (#27421). - Fixed a bug where Windows paths were incorrectly handled under some circumstances when using the HyperV machine provider (#27571).
- Fixed a bug where the
podman run --pod-id-fileoption was not properly validated, allowing the creation of containers in pods with improper user namespace configuration (#26848).
API
- Added new APIs for interacting with Quadlets, including
GET /libpod/quadlets/{name}/file(print contents of a Quadlet file),GET /libpod/quadlets/{name}/exists(check if the given Quadlet exists),POST /libpod/quadlets(install one or more Quadlets),DELETE /libpod/quadlets(remove one or more Quadlets), andDELETE /libpod/quadlets/{name}(remove a single Quadlet). - Fixed a bug where the Compat and Libpod Logs endpoints for Containers did not use nanosecond-level precision for reported timestamps (#27961).
- Fixed a bug where the Compat Create endpoint for Containers incorrectly handled healthcheck commands with arguments containing spaces (#26519).
- Fixed a bug where the Compat Remove endpoint for Secrets was misnamed as
DELETE /secret/{name}instead ofDELETE /secrets/{name}(#27548).
v5.7.1
Bugfixes
- Fixed a bug where adding devices to emulated Linux containers on FreeBSD did not work.
- Fixed a bug where the
podman system migratecommand could panic under certain circumstances when run rootless. - Fixed a bug where Podman would sometimes not correctly recreate the rootless user namespace when Conmon and the rootless pause process were unexpectedly killed.
- Fixed a bug where the
podman kube playcommand could leak file descriptors.
Misc
- Updated Buildah to v1.42.2
- Updated containers/common to v0.66.1
v5.7.0
Security
- This release addresses CVE-2025-52881, where arbitrary write gadgets and procfs write redirects allowed runc container escape and denial of service.
Features
- The remote Podman client and
podman system serviceAPI server now support encrypting connections with TLS and mTLS, including client authentication by certificate (#24583). - The
podman system connection addcommand can now create connections to TCP sockets with TLS and mTLS encryption. - The
podman runandpodman createcommands now support two new options,--credsand--cert-dir, to manage logging into registries to pull images. - The
podman kube playandpodman kube downcommands can now accept multiple files as input, creating or removing more than one pod or deployment with the same command (#26274). - The
podman kube playcommand now supports a new option,--no-pod-prefix, to disable prefixing container names with pod names. Please note that this can cause pods to fail to create if the pod shares a name with a container (#26396). - The
podman machine initcommand now supports a new option,--tls-verify, to control whether the machine image can be pulled from registries without a trusted TLS certificate, with the default beingtrue(TLS verification on) (#26517). - When running the
podman image loadandpodman buildcommands against apodman machineVM, if the path being loaded or built is shared into the VM, Podman will load it from the VM's filesystem instead of streaming the data through the REST API, improving performance (#26321). - A default location for container log files when using the
k8s-filelog driver can now be specified with thelog_pathoption incontainers.conf. - Default flags for the OCI runtime can now be set with the
runtimes_flagsoption incontainers.conf. - The
podman artifact removecommand can now accept multiple arguments, for example,podman artifact rm artifact1 artifact2. - The
podman waitcommand now supports a new option,--return-on-first, which causespodman waitto return after any container matches the condition, as opposed to waiting for all containers to match (#26691). - The
podman container restorecommand now supports a new option,--tcp-close, allowing containers with active TCP connections to be restored multiple times. - Quadlet now features support for a new file type,
.artifact, allowing OCI artifacts to be managed with Quadlet (#25778). - Quadlet
.containerfiles now support a new key,HttpProxy, to disable the automatic forwarding of HTTP proxy options from the host into the container (#26925). - Quadlet
.podfiles now support a new key,StopTimeout, to configure the stop timeout for the pod (#27120). - Quadlet
.buildfiles now support two new keys,BuildArgandIgnoreFile, to specify build arguments and an ignore file (#27065 and #27268). - Quadlet
.kubefiles now support multiple YAML files in a single.kubefile. - Quadlet now supports templated dependencies for volumes and networks (#25136).
- The
podman quadlet installcommand now supports a new option,--replace, which will replace any existing Quadlet with a conflicting name (#26930). - The
podman quadlet printcommand now has a new alias,podman quadlet cat(#27296). - The remote Podman client's
podman artifact removecommand now supports the--alloption. - The
podman artifact addcommand now supports a new option,--replace, which will replace any existing artifact with the given name (#27082). - The
podman artifact rmcommand now supports a new option,--ignore, which will suppress errors when attempting to remove an artifact that does not exist (#27084). - The
podman artifact listcommand now includes artifact creation time in its output (#27314). - The
podman artifact list --formatoption now supports two new format keys,VirtualSize, returning the size of the artifact in integer bytes, andCreatedAt, returning the time the artifact was created as an RFC3339 timestamp (the existingSizeandCreatedfields returned human-readable information) (#27085). - The
podman artifact inspectcommand now supports a new option,--format, to return specific information about an artifact with user-specified formatting (#27112).
Changes
- In preparation for a planned removal of the BoltDB database in Podman 6.0, a warning has been added for installations still using BoltDB. These warnings were added in Podman 5.6, but were not visible by default; they now are. They can be suppressed with the
SUPPRESS_BOLTDB_WARNING=trueenvironment variable. - A new Windows installer has been introduced with a simpler single MSI architecture that supports both user-scope (no admin required) and machine-scope installations. Note: To use the new installer, users must uninstall existing Podman installations before using the new installer, but all containers, images, machines, and other data will be preserved. The old installer is still provided to ensure backwards compatibility, though it will be removed in a future release (#22994 and #25968).
- Podman now requires Go 1.24.
- When the
-p/--publishand--network=ns:/pathoptions are used together when creating a container, Podman will not warn that the-poption will be ignored as an existing namespace is in use (this has always been the case, but Podman now prints a warning about it) (#26663). - The
podman statscommand now provides additional information about container resource utilization when run on FreeBSD. - Shell autocompletion has been enabled for the
--sysctloption topodman createandpodman run, and the--interface-nameoption topodman network create. - Artifacts created by Podman now include a creation timestamp by default, stored in the
org.opencontainers.image.createdannotation (#27081). - The
podman inspectcommand can now inspect artifacts. - The
podman artifact addcommand can now override theorg.opencontainers.image.titleannotation in created artifacts. - Podman can now optionally be built with Sequoia-PGP support. When so built, the
--sign-by-sq-fingerprintoption allows signing images using Seqoia-PGP keys.
Bugfixes
- Fixed a bug where the
--filter ancestor=option topodman psrequired complete matches, unlike Docker (which matched substrings) (#26623). - Fixed a bug where the
--filter label=option topodman eventsdid not support key-only matches (aspodman os --filter label=does) (#26702). - Fixed a bug where Quadlet could panic when a
Mountwas given without asourcebeing specified. - Fixed a bug where Quadlet would fail to generate for a
.buildfile when a systemd specifier was used in the[Build]section (#26746). - Fixed a bug where the
podman infocommand could panic when/proc/sys/fs/binfmt_miscwas not mounted. - Fixed a bug where the remote Podman client could lose some initial bytes of output from attach sessions (
podman run,podman exec,podman attach) due to a race condition (#26951). - Fixed a bug where the
podman buildcommand was ignoring SBOM related options (#23915). - Fixed a bug where the
--userns=ns:/pathoption topodman createandpodman runwas broken with runc 1.1.11 and higher (#27148). - Fixed a bug where
podman machineon Windows would always re-pull machine images when using the WSL provider, even if an the image had already been pulled and was present on disk.
API
- Added a new API endpoint to list quadlets (
GET /libpod/quadlets/json). - The Compat Inspect endpoint for Images no longer includes the
ContainerConfigfield. To access image configuration, use theConfigfield instead. This matches changes made by Docker in the v1.45 API. - Fixed a bug where the Stats and Commit endpoints for Containers (compat & libpod), the Push, Commit, Push, and Pull endpoints for Images (compat & libpod), and the Push endpoint for Manifests (libpod) were not returning a
Content-Typeheader.
Misc
- Error messages returned when an incomplete
--deviceoption (for example--device /dev/fuse::) is passed topodman createorpodman runhave been improved. - Updated Buildah to v1.42.0
- Updated the containers/image library to v5.38.0
- Updated the containers/storage library to v1.61.0
- Updated the containers/common library to v0.66.0
- The containers/image, containers/storage, and containers/common libraries are now sourced from the [containers/co...
v5.7.0-RC3
Features
- The remote Podman client and
podman system serviceAPI server now support encrypting connections with TLS and mTLS, including client authentication by certificate (#24583). - The
podman system connection addcommand can now create connections to TCP sockets with TLS and mTLS encryption. - The
podman runandpodman createcommands now support two new options,--credsand--cert-dir, to manage logging into registries to pull images. - The
podman kube playandpodman kube downcommands can now accept multiple files as input, creating or removing more than one pod or deployment with the same command (#26274). - The
podman kube playcommand now supports a new option,--no-pod-prefix, to disable prefixing container names with pod names. Please note that this can cause pods to fail to create if the pod shares a name with a container (#26396). - The
podman machine initcommand now supports a new option,--tls-verify, to control whether the machine image can be pulled from registries without a trusted TLS certificate, with the default beingtrue(TLS verification on) (#26517). - When running the
podman image loadandpodman buildcommands against apodman machineVM, if the path being loaded or built is shared into the VM, Podman will load it from the VM's filesystem instead of streaming the data through the REST API, improving performance (#26321). - A default location for container log files when using the
k8s-filelog driver can now be specified with thelog_pathoption incontainers.conf. - Default flags for the OCI runtime can now be set with the
runtimes_flagsoption incontainers.conf. - The
podman artifact removecommand can now accept multiple arguments, for example,podman artifact rm artifact1 artifact2. - The
podman waitcommand now supports a new option,--return-on-first, which causespodman waitto return after any container matches the condition, as opposed to waiting for all containers to match (#26691). - The
podman container restorecommand now supports a new option,--tcp-close, allowing containers with active TCP connections to be restored multiple times. - Quadlet now features support for a new file type,
.artifact, allowing OCI artifacts to be managed with Quadlet (#25778). - Quadlet
.containerfiles now support a new key,HttpProxy, to disable the automatic forwarding of HTTP proxy options from the host into the container (#26925). - Quadlet
.podfiles now support a new key,StopTimeout, to configure the stop timeout for the pod (#27120). - Quadlet
.buildfiles now support two new keys,BuildArgandIgnoreFile, to specify build arguments and an ignore file (#27065 and #27268). - Quadlet
.kubefiles now support multiple YAML files in a single.kubefile. - Quadlet now supports templated dependencies for volumes and networks (#25136).
- The
podman quadlet installcommand now supports a new option,--replace, which will replace any existing Quadlet with a conflicting name (#26930). - The
podman quadlet printcommand now has a new alias,podman quadlet cat(#27296). - The remote Podman client's
podman artifact removecommand now supports the--alloption. - The
podman artifact addcommand now supports a new option,--replace, which will replace any existing artifact with the given name (#27082). - The
podman artifact rmcommand now supports a new option,--ignore, which will suppress errors when attempting to remove an artifact that does not exist (#27084). - The
podman artifact listcommand now includes artifact creation time in its output (#27314). - The
podman artifact list --formatoption now supports two new format keys,VirtualSize, returning the size of the artifact in integer bytes, andCreatedAt, returning the time the artifact was created as an RFC3339 timestamp (the existingSizeandCreatedfields returned human-readable information) (#27085). - The
podman artifact inspectcommand now supports a new option,--format, to return specific information about an artifact with user-specified formatting (#27112).
Changes
- In preparation for a planned removal of the BoltDB database in Podman 6.0, a warning has been added for installations still using BoltDB. These warnings were added in Podman 5.6, but were not visible by default; they now are. They can be suppressed with the
SUPPRESS_BOLTDB_WARNING=trueenvironment variable. - A new Windows installer has been introduced with a simpler single MSI architecture that supports both user-scope (no admin required) and machine-scope installations. Note: To use the new installer, users must uninstall existing Podman installations before using the new installer, but all containers, images, machines, and other data will be preserved. The old installer is still provided to ensure backwards compatibility, though it will be removed in a future release (#22994 and #25968).
- Podman now requires Go 1.24.
- When the
-p/--publishand--network=ns:/pathoptions are used together when creating a container, Podman will not warn that the-poption will be ignored as an existing namespace is in use (this has always been the case, but Podman now prints a warning about it) (#26663). - The
podman statscommand now provides additional information about container resource utilization when run on FreeBSD. - Shell autocompletion has been enabled for the
--sysctloption topodman createandpodman run, and the--interface-nameoption topodman network create. - Artifacts created by Podman now include a creation timestamp by default, stored in the
org.opencontainers.image.createdannotation (#27081). - The
podman inspectcommand can now inspect artifacts. - The
podman artifact addcommand can now override theorg.opencontainers.image.titleannotation in created artifacts. - Podman can now optionally be built with Sequoia-PGP support. When so built, the
--sign-by-sq-fingerprintoption allows signing images using Seqoia-PGP keys.
Bugfixes
- Fixed a bug where the
--filter ancestor=option topodman psrequired complete matches, unlike Docker (which matched substrings) (#26623). - Fixed a bug where the
--filter label=option topodman eventsdid not support key-only matches (aspodman os --filter label=does) (#26702). - Fixed a bug where Quadlet could panic when a
Mountwas given without asourcebeing specified. - Fixed a bug where Quadlet would fail to generate for a
.buildfile when a systemd specifier was used in the[Build]section (#26746). - Fixed a bug where the
podman infocommand could panic when/proc/sys/fs/binfmt_miscwas not mounted. - Fixed a bug where the remote Podman client could lose some initial bytes of output from attach sessions (
podman run,podman exec,podman attach) due to a race condition (#26951). - Fixed a bug where the
podman buildcommand was ignoring SBOM related options (#23915). - Fixed a bug where the
--userns=ns:/pathoption topodman createandpodman runwas broken with runc 1.1.11 and higher (#27148). - Fixed a bug where
podman machineon Windows would always re-pull machine images when using the WSL provider, even if an the image had already been pulled and was present on disk.
API
- Added a new API endpoint to list quadlets (
GET /libpod/quadlets/json). - The Compat Inspect endpoint for Images no longer includes the
ContainerConfigfield. To access image configuration, use theConfigfield instead. This matches changes made by Docker in the v1.45 API. - Fixed a bug where the Stats and Commit endpoints for Containers (compat & libpod), the Push, Commit, Push, and Pull endpoints for Images (compat & libpod), and the Push endpoint for Manifests (libpod) were not returning a
Content-Typeheader.
Misc
- Error messages returned when an incomplete
--deviceoption (for example--device /dev/fuse::) is passed topodman createorpodman runhave been improved. - Updated Buildah to v1.42.0
- Updated the containers/image library to v5.38.0
- Updated the containers/storage library to v1.61.0
- Updated the containers/common library to v0.66.0
- The containers/image, containers/storage, and containers/common libraries are now sourced from the containers/container-libs monorepo.
v5.7.0-RC2
Features
- The remote Podman client and
podman system serviceAPI server now support encrypting connections with TLS and mTLS, including client authentication by certificate (#24583). - The
podman system connection addcommand can now create connections to TCP sockets with TLS and mTLS encryption. - The
podman runandpodman createcommands now support two new options,--credsand--cert-dir, to manage logging into registries to pull images. - The
podman kube playandpodman kube downcommands can now accept multiple files as input, creating or removing more than one pod or deployment with the same command (#26274). - The
podman kube playcommand now supports a new option,--no-pod-prefix, to disable prefixing container names with pod names. Please note that this can cause pods to fail to create if the pod shares a name with a container (#26396). - The
podman machine initcommand now supports a new option,--tls-verify, to control whether the machine image can be pulled from registries without a trusted TLS certificate, with the default beingtrue(TLS verification on) (#26517). - When running the
podman image loadandpodman buildcommands against apodman machineVM, if the path being loaded or built is shared into the VM, Podman will load it from the VM's filesystem instead of streaming the data through the REST API, improving performance (#26321). - A default location for container log files when using the
k8s-filelog driver can now be specified with thelog_pathoption incontainers.conf. - Default flags for the OCI runtime can now be set with the
runtimes_flagsoption incontainers.conf. - The
podman artifact removecommand can now accept multiple arguments, for example,podman artifact rm artifact1 artifact2. - The
podman waitcommand now supports a new option,--return-on-first, which causespodman waitto return after any container matches the condition, as opposed to waiting for all containers to match (#26691). - The
podman container restorecommand now supports a new option,--tcp-close, allowing containers with active TCP connections to be restored multiple times. - Quadlet now features support for a new file type,
.artifact, allowing OCI artifacts to be managed with Quadlet (#25778). - Quadlet
.containerfiles now support a new key,HttpProxy, to disable the automatic forwarding of HTTP proxy options from the host into the container (#26925). - Quadlet
.podfiles now support a new key,StopTimeout, to configure the stop timeout for the pod (#27120). - Quadlet
.buildfiles now support two new keys,BuildArgandIgnoreFile, to specify build arguments and an ignore file (#27065 and #27268). - Quadlet
.kubefiles now support multiple YAML files in a single.kubefile. - Quadlet now supports templated dependencies for volumes and networks (#25136).
- The
podman quadlet installcommand now supports a new option,--replace, which will replace any existing Quadlet with a conflicting name (#26930). - The
podman quadlet printcommand now has a new alias,podman quadlet cat(#27296). - The remote Podman client's
podman artifact removecommand now supports the--alloption. - The
podman artifact addcommand now supports a new option,--replace, which will replace any existing artifact with the given name (#27082). - The
podman artifact rmcommand now supports a new option,--ignore, which will suppress errors when attempting to remove an artifact that does not exist (#27084). - The
podman artifact listcommand now includes artifact creation time in its output (#27314). - The
podman artifact list --formatoption now supports two new format keys,VirtualSize, returning the size of the artifact in integer bytes, andCreatedAt, returning the time the artifact was created as an RFC3339 timestamp (the existingSizeandCreatedfields returned human-readable information) (#27085). - The
podman artifact inspectcommand now supports a new option,--format, to return specific information about an artifact with user-specified formatting (#27112).
Changes
- In preparation for a planned removal of the BoltDB database in Podman 6.0, a warning has been added for installations still using BoltDB. These warnings were added in Podman 5.6, but were not visible by default; they now are. They can be suppressed with the
SUPPRESS_BOLTDB_WARNING=trueenvironment variable. - A new Windows installer has been introduced with a simpler single MSI architecture that supports both user-scope (no admin required) and machine-scope installations. Note: To use the new installer, users must uninstall existing Podman installations before using the new installer, but all containers, images, machines, and other data will be preserved. The old installer is still provided to ensure backwards compatibility, though it will be removed in a future release (#22994 and #25968).
- Podman now requires Go 1.24.
- When the
-p/--publishand--network=ns:/pathoptions are used together when creating a container, Podman will not warn that the-poption will be ignored as an existing namespace is in use (this has always been the case, but Podman now prints a warning about it) (#26663). - The
podman statscommand now provides additional information about container resource utilization when run on FreeBSD. - Shell autocompletion has been enabled for the
--sysctloption topodman createandpodman run, and the--interface-nameoption topodman network create. - Artifacts created by Podman now include a creation timestamp by default, stored in the
org.opencontainers.image.createdannotation (#27081). - The
podman inspectcommand can now inspect artifacts. - The
podman artifact addcommand can now override theorg.opencontainers.image.titleannotation in created artifacts. - Podman can now optionally be built with Sequoia-PGP support. When so built, the
--sign-by-sq-fingerprintoption allows signing images using Seqoia-PGP keys.
Bugfixes
- Fixed a bug where the
--filter ancestor=option topodman psrequired complete matches, unlike Docker (which matched substrings) (#26623). - Fixed a bug where the
--filter label=option topodman eventsdid not support key-only matches (aspodman os --filter label=does) (#26702). - Fixed a bug where Quadlet could panic when a
Mountwas given without asourcebeing specified. - Fixed a bug where Quadlet would fail to generate for a
.buildfile when a systemd specifier was used in the[Build]section (#26746). - Fixed a bug where the
podman infocommand could panic when/proc/sys/fs/binfmt_miscwas not mounted. - Fixed a bug where the remote Podman client could lose some initial bytes of output from attach sessions (
podman run,podman exec,podman attach) due to a race condition (#26951). - Fixed a bug where the
podman buildcommand was ignoring SBOM related options (#23915). - Fixed a bug where the
--userns=ns:/pathoption topodman createandpodman runwas broken with runc 1.1.11 and higher (#27148).
API
- Added a new API endpoint to list quadlets (
GET /libpod/quadlets/json). - The Compat Inspect endpoint for Images no longer includes the
ContainerConfigfield. To access image configuration, use theConfigfield instead. This matches changes made by Docker in the v1.45 API. - Fixed a bug where the Stats and Commit endpoints for Containers (compat & libpod), the Push, Commit, Push, and Pull endpoints for Images (compat & libpod), and the Push endpoint for Manifests (libpod) were not returning a
Content-Typeheader.
Misc
- Error messages returned when an incomplete
--deviceoption (for example--device /dev/fuse::) is passed topodman createorpodman runhave been improved. - Updated Buildah to v1.42.0
- Updated the containers/image library to v5.38.0
- Updated the containers/storage library to v1.61.0
- Updated the containers/common library to v0.66.0
- The containers/image, containers/storage, and containers/common libraries are now sourced from the containers/container-libs monorepo.