Releases: containers/podman
Releases · containers/podman
v5.6.2
Bugfixes
- Fixed a bug where stopping the
podman machine startcommand with SIGPIPE could result in machine state being stuck as "Starting" (#26949). - Fixed a bug where
podman buildwould fail with a permissions error when building Containerfiles using a non-root user and cache mounts (#27044).
Misc
- Updated Buildah to v1.41.5
v5.6.1
Security
- This release addresses CVE-2025-9566, where Kubernetes YAML run by
podman play kubecontainingConfigMapandSecretvolumes can use crafted symlinks to overwrite content on the host.
Bugfixes
- Fixed a bug where network creation and removal events were displayed incorrectly when the
journaldevents driver was in use. - Fixed a bug where the
--security-opt seccomp=unconfinedoption was broken on Windows (#26855). - Fixed a bug where containers created with a name longer than 64 characters, no explicit hostname, the the
container_name_as_hostnameoption incontainers.confset totruewould fail to start. - Fixed a bug where Podman would fail to start containers when runc 1.3.0 or later was used as the OCI runtime (#26938).
Misc
- Adjusted the systemd-tmpfiles script to recursively remove temporary files directories placed in
/tmp, ensuring proper operation of Podman after a reboot if/tmpis not a tmpfs. - Updated Buildah to v1.41.4
- Updated the containers/storage to v1.59.1
- Updated the containers/common library to v0.64.2
v5.6.0
Features
- A new set of commands for managing Quadlets has been added as
podman quadlet install(install a new Quadlet for the current user),podman quadlet list(list installed Quadlets),podman quadlet print(print the contents of a Quadlet file), andpodman quadlet rm(remove a Quadlet). These commands are presently not available with the remote Podman client - we expect support for this to arrive in a future release. - Quadlet
.containerunits can now specify environment variables without values in theEnvironment=key, retrieving the value from the host when the container is started (#26247). - Quadlet
.podunits now support two new keys,Label=(to set labels on the created pod) andExitPolicy=(to set exit policy for the created pod) (#25961 and #25596). - Quadlet
.imageunits now support a new key,Policy=, to set pull policy for the image (e.g. pull always, pull only if newer version available) (#26446). - Quadlet
.networkunits now support a new key,InterfaceName=, to specify the name of the network interface created. - The
podman machine initcommand now supports a new option,--swap, enabling swap in the created virtual machine and setting it to a given size (in megabytes) (#15980). - The
--mountoption topodman createandpodman runnow supportsdest=as a valid alias fordestination=. - The
podman kube playcommand can now restrict container execution to specific CPU cores and specific memory nodes using theio.podman.annotations.cpuset/$ctrnameandio.podman.annotations.memory-nodes/$ctrnameannotations (#26172). - The
podman kube playcommand now supports thelifecycle.stopSignalfield in Pod YAML, allowing the signal used to stop containers to be specified (#25389). - The
podman artifactsuite of commands for interacting with OCI artifacts is now available in the remote Podman client and the bindings for the REST API. - The
podman volume importandpodman volume exportcommands are now available in the remote Podman client (#26049). - The
--build-contextoption topodman buildis now supported by the remote Podman client (#23433). - The
podman volume createcommand now accepts two new options,--uidand--gid, to set the UID and GID the volume will be created with. - The
podman secret createcommand now has a new option,--ignore, causing the command to succeed even if a secret with the given name already exists. - The
podman pullcommand now has a new option,--policy, to configure pull policy. - The
--mount type=artifactoption topodman create,podman run, andpodman pod createnow allows the filename of the artifact in the container to be set using thename=option (e.g.podman run --mount type=artifact,name=$NAME,...). - The
--tmpfsoption topodman createandpodman runnow allows a new option,noatime, to be passed (e.g.podman run --tmpfs /run:noatime ...) (#26102). - The
podman updatecommand now has a new option,--latest, to update the latest container instead of specifying a specific container (#26380). - A new command,
podman buildx inspect, has been added to improve Docker compatibility (#13014).
Breaking Changes
- Rosetta support in
podman machineVMs has been disabled by default due to issues with newer Linux kernels. These issues have been addressed in the Tahoe beta, and we plan on re-enabling support for Rosetta in a future Podman release once the fix is in wider circulation. You can find more details here.
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 are presently not visible by default, which will happen in Podman 5.7.
- The
podman artifactsuite of commands for interacting with OCI artifacts is now considered stable. - For users running
podman machineVMs using thelibkrunprovider on an M3 or newer host running macOS 15+, nested virtualization is enabled by default. - When creating
podman machineVMs on Windows using the WSL v2 provider, images are now pulled as artifacts fromquay.io/podman/machine-os, matching the behavior of other VM providers. - Signal forwarding done by the
--sig-proxyoption topodman runandpodman attachis now more robust to races and no longer forwards theSIGSTOPsignal. - The
podman system check --quickcommand now skips checking layer digests. - Podman on Windows using the WSLv2 provider now prefers the WSL executable in
C:\Program Files\Windows Subsystem for Linux\wsl.exeover the one inWindowsApps, avoiding common “access denied” issues (#25787). - The
--mount type=artifactoption topodman create,podman run, andpodman pod createnow mounts artifacts containing a only a single blob as a file at the given destination path if the path does not exist in the image. - The
podman volume exportcommand now refuses to export toSTDOUTif it is a TTY (#26506). - When generating Quadlet units with options known to be problematic when used with Podman, such as
User=,Group=, andDynamicUser=in the[Service]section of a unit, Quadlet will now warn the user of the potential incompatibility (#26543).
Bugfixes
- Fixed a bug where the
--security-opt unmask=option topodman createandpodman rundid not allow comma-separated lists of paths to be passed, instead only allowing a single path. - Fixed a bug where stopping a Podman container could unintentionally kill non-Podman processes if the PID of an exec session started inside the container was reused for a new process while the container was running (#25104).
- Fixed a bug where
podman machine initcould fail if run in a Podman container (#25950). - Fixed a bug where
podman machineVMs would sometimes receive incorrect timezone information. - Fixed a bug where
podman machineVMs created with a custom username would not have lingering enabled. - Fixed a bug where the
podman machine initcommand on Windows when using the WSL 2 provider did not reliably determine if WSL was installed (#25523). - Fixed a bug where the name of Quadlet
.podunits that did not specify thePodName=key was set incorrectly (#26062). - Fixed a bug where Quadlet
.containerunits joining a pod specified in a.podunit would fail as the pod name was set incorrectly when creating the container (#26105). - Fixed a bug where Quadlet would not generate
RequiresMountsForwhen mounting a.volumeunit withType=bindset into a container (#26125). - Fixed a bug where Quadlet dropin files were not correctly overwritten by new dropin files with the same name further along the hierarchy if the two dropin files did not share a parent directory (#26555).
- Fixed a bug where Quadlet would sometimes not print warnings when failing to parse units (#26542).
- Fixed a bug where Quadlet
.podfiles did not include the lastEnvironment=key in the[Service]section in the generated systemd service (#26521). - Fixed a bug where starting a container with already-running dependencies would fail.
- Fixed a bug where OCI hooks in a directory specified with
--hooks-dirwould fail to run when containers were restarted (#17935). - Fixed a bug where the
--mountoption topodman createandpodman runrequired thetype=option to be specified, instead of defaulting tovolumewhen it was not present (#26101). - Fixed a bug where the
podman kube playcommand would fail on Windows when specifying an absolute path to YAML files (#26350). - Fixed a bug where the
--security-opt seccomp=option topodman create,podman run, andpodman pod createcould error on Windows when given a path to a Seccomp profile (#26558). - Fixed a bug where the
--blkio-weight-device,--device-read-bps,--device-write-bps,--device-read-iops, and--device-write-iopsoptions topodman createandpodman runincorrectly accepted non-block devices. - Fixed a bug where the
podman buildcommand handled the--ignorefileoption differently from thebuildah budcommand (#25746). - Fixed a bug where the
podman rm -fcommand could return an error when trying to remove a running container whoseconmonprocess had been killed (#26640). - Fixed a ...
v5.6.0-RC2
Features
- A new set of commands for managing Quadlets has been added as
podman quadlet install(install a new Quadlet for the current user),podman quadlet list(list installed Quadlets),podman quadlet print(print the contents of a Quadlet file), andpodman quadlet rm(remove a Quadlet). These commands are presently not available with the remote Podman client - we expect support for this to arrive in a future release. - Quadlet
.containerunits can now specify environment variables without values in theEnvironment=key, retrieving the value from the host when the container is started (#26247). - Quadlet
.podunits now support two new keys,Label=(to set labels on the created pod) andExitPolicy=(to set exit policy for the created pod) (#25961 and #25596). - Quadlet
.imageunits now support a new key,Policy=, to set pull policy for the image (e.g. pull always, pull only if newer version available) (#26446). - Quadlet
.networkunits now support a new key,InterfaceName=, to specify the name of the network interface created. - The
podman machine initcommand now supports a new option,--swap, enabling swap in the created virtual machine and setting it to a given size (in megabytes) (#15980). - The
--mountoption topodman createandpodman runnow supportsdest=as a valid alias fordestination=. - The
podman kube playcommand can now restrict container execution to specific CPU cores and specific memory nodes using theio.podman.annotations.cpuset/$ctrnameandio.podman.annotations.memory-nodes/$ctrnameannotations (#26172). - The
podman kube playcommand now supports thelifecycle.stopSignalfield in Pod YAML, allowing the signal used to stop containers to be specified (#25389). - The
podman artifactsuite of commands for interacting with OCI artifacts is now available in the remote Podman client and the bindings for the REST API. - The
podman volume importandpodman volume exportcommands are now available in the remote Podman client (#26049). - The
--build-contextoption topodman buildis now supported by the remote Podman client (#23433). - The
podman volume createcommand now accepts two new options,--uidand--gid, to set the UID and GID the volume will be created with. - The
podman secret createcommand now has a new option,--ignore, causing the command to succeed even if a secret with the given name already exists. - The
podman pullcommand now has a new option,--policy, to configure pull policy. - The
--mount type=artifactoption topodman create,podman run, andpodman pod createnow allows the filename of the artifact in the container to be set using thename=option (e.g.podman run --mount type=artifact,name=$NAME,...). - The
--tmpfsoption topodman createandpodman runnow allows a new option,noatime, to be passed (e.g.podman run --tmpfs /run:noatime ...) (#26102). - The
podman updatecommand now has a new option,--latest, to update the latest container instead of specifying a specific container (#26380). - A new command,
podman buildx inspect, has been added to improve Docker compatibility (#13014).
Changes
- The
podman artifactsuite of commands for interacting with OCI artifacts is now considered stable. - For users running
podman machineVMs using thelibkrunprovider on an M3 or newer host running macOS 15+, nested virtualization is enabled by default. - When creating
podman machineVMs on Windows using the WSL v2 provider, images are now pulled as artifacts fromquay.io/podman/machine-os, matching the behavior of other VM providers. - Signal forwarding done by the
--sig-proxyoption topodman runandpodman attachis now more robust to races and no longer forwards theSIGSTOPsignal. - The
podman system check --quickcommand now skips checking layer digests. - Podman on Windows using the WSLv2 provider now prefers the WSL executable in
C:\Program Files\Windows Subsystem for Linux\wsl.exeover the one inWindowsApps, avoiding common “access denied” issues (#25787). - The
--mount type=artifactoption topodman create,podman run, andpodman pod createnow mounts artifacts containing a only a single blob as a file at the given destination path if the path does not exist in the image. - The
podman volume exportcommand now refuses to export toSTDOUTif it is a TTY (#26506). - When generating Quadlet units with options known to be problematic when used with Podman, such as
User=,Group=, andDynamicUser=in the[Service]section of a unit, Quadlet will now warn the user of the potential incompatibility (#26543).
Bugfixes
- Fixed a bug where the
--security-opt unmask=option topodman createandpodman rundid not allow comma-separated lists of paths to be passed, instead only allowing a single path. - Fixed a bug where stopping a Podman container could unintentionally kill non-Podman processes if the PID of an exec session started inside the container was reused for a new process while the container was running (#25104).
- Fixed a bug where
podman machine initcould fail if run in a Podman container (#25950). - Fixed a bug where
podman machineVMs would sometimes receive incorrect timezone information. - Fixed a bug where
podman machineVMs created with a custom username would not have lingering enabled. - Fixed a bug where the
podman machine initcommand on Windows when using the WSL 2 provider did not reliably determine if WSL was installed (#25523). - Fixed a bug where the name of Quadlet
.podunits that did not specify thePodName=key was set incorrectly (#26062). - Fixed a bug where Quadlet
.containerunits joining a pod specified in a.podunit would fail as the pod name was set incorrectly when creating the container (#26105). - Fixed a bug where Quadlet would not generate
RequiresMountsForwhen mounting a.volumeunit withType=bindset into a container (#26125). - Fixed a bug where Quadlet dropin files were not correctly overwritten by new dropin files with the same name further along the hierarchy if the two dropin files did not share a parent directory (#26555).
- Fixed a bug where Quadlet would sometimes not print warnings when failing to parse units (#26542).
- Fixed a bug where Quadlet
.podfiles did not include the lastEnvironment=key in the[Service]section in the generated systemd service (#26521). - Fixed a bug where starting a container with already-running dependencies would fail.
- Fixed a bug where OCI hooks in a directory specified with
--hooks-dirwould fail to run when containers were restarted (#17935). - Fixed a bug where the
--mountoption topodman createandpodman runrequired thetype=option to be specified, instead of defaulting tovolumewhen it was not present (#26101). - Fixed a bug where the
podman kube playcommand would fail on Windows when specifying an absolute path to YAML files (#26350). - Fixed a bug where the
--security-opt seccomp=option topodman create,podman run, andpodman pod createcould error on Windows when given a path to a Seccomp profile (#26558). - Fixed a bug where the
--blkio-weight-device,--device-read-bps,--device-write-bps,--device-read-iops, and--device-write-iopsoptions topodman createandpodman runincorrectly accepted non-block devices. - Fixed a bug where the
podman buildcommand handled the--ignorefileoption differently from thebuildah budcommand (#25746). - Fixed a bug where the
podman rm -fcommand could return an error when trying to remove a running container whoseconmonprocess had been killed (#26640). - Fixed a bug where the
podman inspectcommand did not correctly display log size for containers whenlog_size_maxwas set in containers.conf.
API
- A full set of API endpoints for interacting with artifacts has been added, including inspecting artifacts (
GET /libpod/artifacts/{name}/json), listing all artifacts (GET /libpod/artifacts/json), pulling an artifact (POST /libpod/artifacts/pull), removing an artifact (DELETE /libpod/artifacts/{name}), adding an artifact (or appending to an existing artifact) from a tar file in the request body (POST /libpod/artifacts/add), pushing an artifact to a registry (/libpod/artifacts/{name}/push), and retrieving the contents of an ar...
v5.6.0-RC1
Features
- A new set of commands for managing Quadlets has been added as
podman quadlet install(install a new Quadlet for the current user),podman quadlet list(list installed Quadlets),podman quadlet print(print the contents of a Quadlet file), andpodman quadlet rm(remove a Quadlet). These commands are presently not available with the remote Podman client - we expect support for this to arrive in a future release. - Quadlet
.containerunits can now specify environment variables without values in theEnvironment=key, retrieving the value from the host when the container is started (#26247). - Quadlet
.podunits now support two new keys,Label=(to set labels on the created pod) andExitPolicy=(to set exit policy for the created pod) (#25961 and #25596). - Quadlet
.imageunits now support a new key,Policy=, to set pull policy for the image (e.g. pull always, pull only if newer version available) (#26446). - Quadlet
.networkunits now support a new key,InterfaceName=, to specify the name of the network interface created. - The
podman machine initcommand now supports a new option,--swap, enabling swap in the created virtual machine and setting it to a given size (in megabytes) (#15980). - The
--mountoption topodman createandpodman runnow supportsdest=as a valid alias fordestination=. - The
podman kube playcommand can now restrict container execution to specific CPU cores and specific memory nodes using theio.podman.annotations.cpuset/$ctrnameandio.podman.annotations.memory-nodes/$ctrnameannotations (#26172). - The
podman kube playcommand now supports thelifecycle.stopSignalfield in Pod YAML, allowing the signal used to stop containers to be specified (#25389). - The
podman volume importandpodman volume exportcommands are now available in the remote Podman client (#26049). - The
--build-contextoption topodman buildis now supported by the remote Podman client (#23433). - The
podman volume createcommand now accepts two new options,--uidand--gid, to set the UID and GID the volume will be created with. - The
podman secret createcommand now has a new option,--ignore, causing the command to succeed even if a secret with the given name already exists. - The
podman pullcommand now has a new option,--policy, to configure pull policy. - The
--mount type=artifactoption topodman create,podman run, andpodman pod createnow allows the filename of the artifact in the container to be set using thename=option (e.g.podman run --mount type=artifact,name=$NAME,...). - The
--tmpfsoption topodman createandpodman runnow allows a new option,noatime, to be passed (e.g.podman run --tmpfs /run:noatime ...) (#26102). - The
podman updatecommand now has a new option,--latest, to update the latest container instead of specifying a specific container (#26380). - A new command,
podman buildx inspect, has been added to improve Docker compatibility (#13014).
Changes
- For users running
podman machineVMs using thelibkrunprovider on an M3 or newer host running macOS 15+, nested virtualization is enabled by default. - When creating
podman machineVMs on Windows using the WSL v2 provider, images are now pulled as artifacts fromquay.io/podman/machine-os, matching the behavior of other VM providers. - Signal forwarding done by the
--sig-proxyoption topodman runandpodman attachis now more robust to races and no longer forwards theSIGSTOPsignal. - The
podman system check --quickcommand now skips checking layer digests. - Podman on Windows using the WSLv2 provider now prefers the WSL executable in
C:\Program Files\Windows Subsystem for Linux\wsl.exeover the one inWindowsApps, avoiding common “access denied” issues (#25787). - The
--mount type=artifactoption topodman create,podman run, andpodman pod createnow mounts artifacts containing a only a single blob as a file at the given destination path if the path does not exist in the image. - The
podman volume exportcommand now refuses to export toSTDOUTif it is a TTY (#26506). - When generating Quadlet units with options known to be problematic when used with Podman, such as
User=,Group=, andDynamicUser=in the[Service]section of a unit, Quadlet will now warn the user of the potential incompatibility (#26543).
Bugfixes
- Fixed a bug where the
--security-opt unmask=option topodman createandpodman rundid not allow comma-separated lists of paths to be passed, instead only allowing a single path. - Fixed a bug where stopping a Podman container could unintentionally kill non-Podman processes if the PID of an exec session started inside the container was reused for a new process while the container was running (#25104).
- Fixed a bug where
podman machine initcould fail if run in a Podman container (#25950). - Fixed a bug where
podman machineVMs would sometimes receive incorrect timezone information. - Fixed a bug where
podman machineVMs created with a custom username would not have lingering enabled. - Fixed a bug where the
podman machine initcommand on Windows when using the WSL 2 provider did not reliably determine if WSL was installed (#25523). - Fixed a bug where the name of Quadlet
.podunits that did not specify thePodName=key was set incorrectly (#26062). - Fixed a bug where Quadlet
.containerunits joining a pod specified in a.podunit would fail as the pod name was set incorrectly when creating the container (#26105). - Fixed a bug where Quadlet would not generate
RequiresMountsForwhen mounting a.volumeunit withType=bindset into a container (#26125). - Fixed a bug where Quadlet dropin files were not correctly overwritten by new dropin files with the same name further along the hierarchy if the two dropin files did not share a parent directory (#26555).
- Fixed a bug where Quadlet would sometimes not print warnings when failing to parse units (#26542).
- Fixed a bug where Quadlet
.podfiles did not include the lastEnvironment=key in the[Service]section in the generated systemd service (#26521). - Fixed a bug where starting a container with already-running dependencies would fail.
- Fixed a bug where OCI hooks in a directory specified with
--hooks-dirwould fail to run when containers were restarted (#17935). - Fixed a bug where the
--mountoption topodman createandpodman runrequired thetype=option to be specified, instead of defaulting tovolumewhen it was not present (#26101). - Fixed a bug where the
podman kube playcommand would fail on Windows when specifying an absolute path to YAML files (#26350). - Fixed a bug where the
--security-opt seccomp=option topodman create,podman run, andpodman pod createcould error on Windows when given a path to a Seccomp profile (#26558). - Fixed a bug where the
--blkio-weight-device,--device-read-bps,--device-write-bps,--device-read-iops, and--device-write-iopsoptions topodman createandpodman runincorrectly accepted non-block devices. - Fixed a bug where the
podman buildcommand handled the--ignorefileoption differently from thebuildah budcommand (#25746). - Fixed a bug where the
podman rm -fcommand could return an error when trying to remove a running container whoseconmonprocess had been killed (#26640). - Fixed a bug where the
podman inspectcommand did not correctly display log size for containers whenlog_size_maxwas set in containers.conf.
API
- A full set of API endpoints for interacting with artifacts has been added, including inspecting artifacts (
GET /libpod/artifacts/{name}/json), listing all artifacts (GET /libpod/artifacts/json), pulling an artifact (POST /libpod/artifacts/pull), removing an artifact (DELETE /libpod/artifacts/{name}), adding an artifact (or appending to an existing artifact) from a tar file in the request body (POST /libpod/artifacts/add), pushing an artifact to a registry (/libpod/artifacts/{name}/push), and retrieving the contents of an artifact (GET /libpod/artifacts/{name}/extract). - The Compat Create endpoint for Containers now accepts a new parameter,
HostConfig.CgroupnsMode, to specify the cgroup namespace mode of the created container. - The Compat Create endpoint for Containers now ...
v5.5.2
Security
- This release addresses CVE-2025-6032, in which the TLS connection used to pull VM images for
podman machinewas, by default, not validated, allowing connections to servers with invalid certificates by default and potentially allowing a Man in the Middle attack.
Bugfixes
- Fixed a bug where Podman could panic after a reboot on systems with pods containing containers (#26469).
v5.5.1
Bugfixes
- Fixed a bug where containers mounting a volume to
/could overmount important directories such as/proccausing start and/or runtime failures due to an issue with mount ordering (#26161). - Fixed a bug where Quadlet
.podunits could fail to start due to their storage not being mounted (#26190). - Fixed a bug where containers joined to a network with DNS enabled would not include the host's search domains in their
resolv.conf(#24713). - Fixed a bug where the
--dns-optoption topodman create,podman run, andpodman pod createwould append options to the container'sresolv.conf, instead of replacing them (#22399). - Fixed a bug where the
podman kube playcommand would add an empty network alias for containers created with no name specified, causing Netavark to emit extraneous warnings. - Fixed a bug where the
podman system dfcommand would panic when one or more containers were created using a root filesystem (the--rootfsoption topodman createandpodman run) instead of from an image (#26224). - Fixed a bug where the
log_tagfield incontainers.confwould override the--log-opt tag=valueoption topodman createandpodman run(#26236). - Fixed a bug where the
podman volume rmandpodman volume inspectcommands would incorrectly handle volume names containing the_character when the SQLite database backend was in use (#26168). - Fixed a bug where the Podman remote client on Windows was unable to mount local folders into containers using overlay mounts (
-v source:destination:O) (#25988).
API
- Fixed a bug in the Libpod Create API for Containers where rlimits specified with a value of
-1were causing errors, instead of being interpreted as the maximum possible value (#24886). - Fixed a bug in the Compat Create API for Containers where specifying an entrypoint of
[](an empty array) was ignored, instead of setting an empty entrypoint (#26078).
Misc
- Updated Buildah to v1.40.1
- Updated the containers/common library to v0.63.1
v5.5.0
Features
- A new command has been added,
podman machine cp, to copy files into a runningpodman machineVM. - A new command has been added,
podman artifact extract, to copy some or all of the contents of an OCI artifact to a location on disk. - The
--mountoption topodman create,podman run, andpodman pod createnow supports a new mount type,--mount type=artifact, to mount OCI artifacts into containers. - The
podman artifact addcommand now features two new options,--append(to add new files to an existing artifact) and--file-type(to specify the MIME type of the file added to the artifact) (#25884). - The
podman artifact rmcommand now features a new option,--all, to remove all artifacts in the local store. - The
--filteroption topodman pause,podman ps,podman restart,podman rm,podman start,podman stop, andpodman unpausenow accepts a new filter,command, which filters on the first element (argv[0]) of the command run in the container. - The
podman execcommand now supports a new option,--cidfile, to specify the ID of the container to exec into via a file (#21256). - The
podman kube generateandpodman kube playcommands now supports a new annotation,io.podman.annotation.pids-limit/$containername, preserving the PID limit for containers acrosskube generateandkube play(#24418). - Quadlet
.containerunits now support three new keys,Memory=(set maximum memory for the created container),ReloadCmd(execute a command via systemdExecReload), andReloadSignal(kill the container with the given signal via systemdExecReload) (#22036). - Quadlet
.container,.image, and.buildunits now support two new keys,Retry(number of times to retry pulling image on failure) andRetryDelay(delay between retries) (#25109). - Quadlet
.podunits now support a new key,HostName=, to set the pod's hostname (#25639). - Quadlet files now support a new option,
UpheldBy, in theInstallsection, corresponding to the systemdUpholdsoption. - The names of Quadlet units specified as systemd dependencies are now automatically translated - e.g.
Wants=my.containeris now valid. - Podman now generates events for the creation and removal of secrets (#24030).
- A new global option has been added to Podman,
--cdi-spec-dir, to specify additional search paths for CDI specs to the CDI loader (#18292 and #25691). - The
podman buildcommand now supports a new option,--inherit-labels(defaults to true), which controls whether labels are inherited from the base image or base stages. - The
podman updatecommand now supports two new options,--envand--unsetenv, to alter the environment variables of existing containers (#24875).
Breaking Changes
- Due to changes in Docker API types, two small breaking changes have been made in the Go bindings for the REST API. The
containers.Commit()function now returns a new struct (types.IDResponse) with identical contents, and thecontainers.ExecCreatefunction'shandlers.ExecCreateConfigparameter now contains a different embedded struct, potentially requiring changes to how it is assigned to.
Changes
- Podman now requires at least Go 1.23 to build.
- Healthchecks have been refactored to avoid writing to the database as much as possible, greatly improving performance on systems with many simultaneous healthchecks running.
- Healthchecks now have a new status,
stopped, which is reported if the container the healthcheck was run on stopped before the check could be completed (#25276). - Containers in pods are now stopped in order based on their dependencies, with the infra container being stopped last, preventing application containers from losing networking before they are stopped due to the infra container stopping prematurely.
- Due to challenges with handling automatic installation, the Windows installer no longer installs WSLv2 or Hyper-V.
- Quadlet will now print warnings when skipping lines to help identify malformed Quadlet files (#25339).
- Creating
podman machineVMs with a host mount over the VM's/tmpdirectory is no longer allowed (#18230). - The
podman logscommand now allows options to be specified after the container name (e.g.podman logs $containername --follow) (#25653). - Podman, by default, no longer uses a pause image for pod infra and service containers. Instead, a root filesystem containing only the
catatonitbinary will be used (#23292). - The
podman system resetcommand no longer removes the user'spodman.sockAPI socket. - When using Netavark v1.15 and higher, containers in non-default networks will no longer have the default search domain
dns.podmanadded. Queries resolving such names will still work. - Stopping a Quadlet
.networkunit will now delete the network (if no containers are actively using it) (#23678). - For security hardening, the
/proc/interruptsand/sys/devices/system/cpu/$CPU/thermal_throttlepaths are now masked by default in containers (#25634).
Bugfixes
- Fixed a bug where healthchecks would still run while a container was paused (#24590).
- Fixed a bug where the remote Podman client on Windows could not mount named volumes with a single-character name into containers (#25218).
- Fixed a bug where mounting an image could panic when run without
CAP_SYS_ADMIN(#25241). - Fixed a bug where Podman would not report errors when setting up healthchecks (#25034).
- Fixed a bug where the
podman execcommand would not add the additional groups of the user the exec session was run as unless the user was explicitly added with the--useroption (#25610). - Fixed a bug where errors during the
podman network connectandpodman network disconnectcommands could create errors in the database which would causepodman inspecton the container to fail. - Fixed a bug where the
podman kube generatecommand did not correctly generate YAML for volume mounts using a subpath. - Fixed a bug where the
podman system dfcommand could show a negative reclaimable size. - Fixed a bug where accessing a rootful
podman machineVM that was notpodman-machine-default(the default VM) with thepodman machine sshcommand would put the user into the rootless shell (#25332). - Fixed a bug where the
podman machine initwould report nonsensical memory values in error messages when trying to create a machine with more memory than the system. - Fixed a bug where the remote Podman client's
podman start --attachcommand would incorrectly print an error when run on a container created with the--rmoption (#25965). - Fixed a bug where the remote Podman client's
podman pullcommand could hang and leak memory if the server was unexpectedly stopped or encountered an error during a pull. - Fixed a bug where the remote Podman client's
podman cpcommand would, on Windows, often fail to copy files into the container due to improper handling of Windows paths (#14862). - Fixed a bug where the
podman container clonecommand did not correctly copy healthcheck settings to the new container (#21630). - Fixed a bug where the
podman kube playcommand would fail to start empty pods (#25786). - Fixed a bug where the
podman volume lscommand did not output headers when no volumes were present (#25911). - Fixed a bug where healthcheck configuration provided by a container's image could not be overridden unless the
--health-cmdoption was specified when creating the container (#20212). - Fixed a bug where the
--useroption topodman createandpodman runcould not be used with users added to the container by the--hostuseroption (#25805). - Fixed a bug where the
podman system resetcommand on FreeBSD would incorrectly print an error. - Fixed a bug where stopping the
podman machine startcommand with SIGINT could result in machine state being incorrectly set to "Starting" (#24416). - Fixed a bug where the
podman machine startcommand would fail when starting a VM with volume mounts containing spaces using the HyperV machine provider (#25500).
API
- Fixed a bug where the Compat Create API for Containers ignored ulimits specified in the request when Podman was run rootless ([#25881...
v5.5.0-RC2
This is the second release candidate of Podman v5.5.0. Preliminary release notes follow:
Features
- A new command has been added,
podman machine cp, to copy files into a runningpodman machineVM. - A new command has been added,
podman artifact extract, to copy some or all of the contents of an OCI artifact to a location on disk. - The
--mountoption topodman create,podman run, andpodman pod createnow supports a new mount type,--mount type=artifact, to mount OCI artifacts into containers. - The
podman artifact addcommand now features two new options,--append(to add new files to an existing artifact) and--file-type(to specify the MIME type of the file added to the artifact) (#25884). - The
podman artifact rmcommand now features a new option,--all, to remove all artifacts in the local store. - The
--filteroption topodman pause,podman ps,podman restart,podman rm,podman start,podman stop, andpodman unpausenow accepts a new filter,command, which filters on the first element (argv[0]) of the command run in the container. - The
podman execcommand now supports a new option,--cidfile, to specify the ID of the container to exec into via a file (#21256). - The
podman kube generateandpodman kube playcommands now supports a new annotation,io.podman.annotation.pids-limit/$containername, preserving the PID limit for containers acrosskube generateandkube play(#24418). - Quadlet
.containerunits now support three new keys,Memory=(set maximum memory for the created container),ReloadCmd(execute a command via systemdExecReload), andReloadSignal(kill the container with the given signal via systemdExecReload) (#22036). - Quadlet
.container,.image, and.buildunits now support two new keys,Retry(number of times to retry pulling image on failure) andRetryDelay(delay between retries) (#25109). - Quadlet
.podunits now support a new key,HostName=, to set the pod's hostname (#25639). - Quadlet files now support a new option,
UpheldBy, in theInstallsection, corresponding to the systemdUpholdsoption. - The names of Quadlet units specified as systemd dependencies are now automatically translated - e.g.
Wants=my.containeris now valid. - Podman now generates events for the creation and removal of secrets (#24030).
- A new global option has been added to Podman,
--cdi-spec-dir, to specify additional search paths for CDI specs to the CDI loader (#18292 and #25691). - The
podman buildcommand now supports a new option,--inherit-labels(defaults to true), which controls whether labels are inherited from the base image or base stages. - The
podman updatecommand now supports two new options,--envand--unsetenv, to alter the environment variables of existing containers (#24875).
Breaking Changes
- Due to changes in Docker API types, two small breaking changes have been made in the Go bindings for the REST API. The
containers.Commit()function now returns a new struct (types.IDResponse) with identical contents, and thecontainers.ExecCreatefunction'shandlers.ExecCreateConfigparameter now contains a different embedded struct, potentially requiring changes to how it is assigned to.
Changes
- Podman now requires at least Go 1.23 to build.
- Healthchecks have been refactored to avoid writing to the database as much as possible, greatly improving performance on systems with many simultaneous healthchecks running.
- Healthchecks now have a new status,
stopped, which is reported if the container the healthcheck was run on stopped before the check could be completed (#25276). - Containers in pods are now stopped in order based on their dependencies, with the infra container being stopped last, preventing application containers from losing networking before they are stopped due to the infra container stopping prematurely.
- Due to challenges with handling automatic installation, the Windows installer no longer installs WSLv2 or Hyper-V.
- Quadlet will now print warnings when skipping lines to help identify malformed Quadlet files (#25339).
- Creating
podman machineVMs with a host mount over the VM's/tmpdirectory is no longer allowed (#18230). - The
podman logscommand now allows options to be specified after the container name (e.g.podman logs $containername --follow) (#25653). - Podman, by default, no longer uses a pause image for pod infra and service containers. Instead, a root filesystem containing only the
catatonitbinary will be used (#23292). - The
podman system resetcommand no longer removes the user'spodman.sockAPI socket. - When using Netavark v1.15 and higher, containers in non-default networks will no longer have the default search domain
dns.podmanadded. Queries resolving such names will still work. - Stopping a Quadlet
.networkunit will now delete the network (if no containers are actively using it) (#23678). - For security hardening, the
/proc/interruptsand/sys/devices/system/cpu/$CPU/thermal_throttlepaths are now masked by default in containers (#25634).
Bugfixes
- Fixed a bug where healthchecks would still run while a container was paused (#24590).
- Fixed a bug where the remote Podman client on Windows could not mount named volumes with a single-character name into containers (#25218).
- Fixed a bug where mounting an image could panic when run without
CAP_SYS_ADMIN(#25241). - Fixed a bug where Podman would not report errors when setting up healthchecks (#25034).
- Fixed a bug where the
podman execcommand would not add the additional groups of the user the exec session was run as unless the user was explicitly added with the--useroption (#25610). - Fixed a bug where errors during the
podman network connectandpodman network disconnectcommands could create errors in the database which would causepodman inspecton the container to fail. - Fixed a bug where the
podman kube generatecommand did not correctly generate YAML for volume mounts using a subpath. - Fixed a bug where the
podman system dfcommand could show a negative reclaimable size. - Fixed a bug where accessing a rootful
podman machineVM that was notpodman-machine-default(the default VM) with thepodman machine sshcommand would put the user into the rootless shell (#25332). - Fixed a bug where the
podman machine initwould report nonsensical memory values in error messages when trying to create a machine with more memory than the system. - Fixed a bug where the remote Podman client's
podman start --attachcommand would incorrectly print an error when run on a container created with the--rmoption (#25965). - Fixed a bug where the remote Podman client's
podman pullcommand could hang and leak memory if the server was unexpectedly stopped or encountered an error during a pull. - Fixed a bug where the remote Podman client's
podman cpcommand would, on Windows, often fail to copy files into the container due to improper handling of Windows paths (#14862). - Fixed a bug where the
podman container clonecommand did not correctly copy healthcheck settings to the new container (#21630). - Fixed a bug where the
podman kube playcommand would fail to start empty pods (#25786). - Fixed a bug where the
podman volume lscommand did not output headers when no volumes were present (#25911). - Fixed a bug where healthcheck configuration provided by a container's image could not be overridden unless the
--health-cmdoption was specified when creating the container (#20212). - Fixed a bug where the
--useroption topodman createandpodman runcould not be used with users added to the container by the--hostuseroption (#25805). - Fixed a bug where the
podman system resetcommand on FreeBSD would incorrectly print an error. - Fixed a bug where stopping the
podman machine startcommand with SIGINT could result in machine state being incorrectly set to "Starting" (#24416).
API
- Fixed a bug where the Compat Create API for Containers ignored ulimits specified in the request when Podman was run rootless (#25881).
Misc
- Erroneous errors from the
ExecStartAndAttach()function ...
v5.5.0-RC1
Features
- A new command has been added,
podman machine cp, to copy files into a runningpodman machineVM. - A new command has been added,
podman artifact extract, to copy some or all of the contents of an OCI artifact to a location on disk. - The
--mountoption topodman create,podman run, andpodman pod createnow supports a new mount type,--mount type=artifact, to mount OCI artifacts into containers. - The
podman artifact addcommand now features two new options,--append(to add new files to an existing artifact) and--file-type(to specify the MIME type of the file added to the artifact) (#25884). - The
podman artifact rmcommand now features a new option,--all, to remove all artifacts in the local store. - The
--filteroption topodman pause,podman ps,podman restart,podman rm,podman start,podman stop, andpodman unpausenow accepts a new filter,command, which filters on the first element (argv[0]) of the command run in the container. - The
podman execcommand now supports a new option,--cidfile, to specify the ID of the container to exec into via a file (#21256). - The
podman kube generateandpodman kube playcommands now supports a new annotation,io.podman.annotation.pids-limit/$containername, preserving the PID limit for containers acrosskube generateandkube play(#24418). - Quadlet
.containerunits now support three new keys,Memory=(set maximum memory for the created container),ReloadCmd(execute a command via systemdExecReload), andReloadSignal(kill the container with the given signal via systemdExecReload) (#22036). - Quadlet
.container,.image, and.buildunits now support two new keys,Retry(number of times to retry pulling image on failure) andRetryDelay(delay between retries) (#25109). - Quadlet
.podunits now support a new key,HostName=, to set the pod's hostname (#25639). - Quadlet files now support a new option,
UpheldBy, in theInstallsection, corresponding to the systemdUpholdsoption. - The names of Quadlet units specified as systemd dependencies are now automatically translated - e.g.
Wants=my.containeris now valid. - Podman now generates events for the creation and removal of secrets (#24030).
- A new global option has been added to Podman,
--cdi-spec-dir, to specify additional search paths for CDI specs to the CDI loader (#18292 and #25691). - The
podman buildcommand now supports a new option,--inherit-labels(defaults to true), which controls whether labels are inherited from the base image or base stages. - The
podman updatecommand now supports two new options,--envand--unsetenv, to alter the environment variables of existing containers (#24875).
Breaking Changes
- Due to changes in Docker API types, two small breaking changes have been made in the Go bindings for the REST API. The
containers.Commit()function now returns a new struct (types.IDResponse) with identical contents, and thecontainers.ExecCreatefunction'shandlers.ExecCreateConfigparameter now contains a different embedded struct, potentially requiring changes to how it is assigned to.
Changes
- Podman now requires at least Go 1.23 to build.
- Healthchecks have been refactored to avoid writing to the database as much as possible, greatly improving performance on systems with many simultaneous healthchecks running.
- Healthchecks now have a new status,
stopped, which is reported if the container the healthcheck was run on stopped before the check could be completed (#25276). - Containers in pods are now stopped in order based on their dependencies, with the infra container being stopped last, preventing application containers from losing networking before they are stopped due to the infra container stopping prematurely.
- Due to challenges with handling automatic installation, the Windows installer no longer installs WSLv2 or Hyper-V.
- Quadlet will now print warnings when skipping lines to help identify malformed Quadlet files (#25339).
- Creating
podman machineVMs with a host mount over the VM's/tmpdirectory is no longer allowed (#18230). - The
podman logscommand now allows options to be specified after the container name (e.g.podman logs $containername --follow) (#25653). - Podman, by default, no longer uses a pause image for pod infra and service containers. Instead, a root filesystem containing only the
catatonitbinary will be used (#23292). - The
podman system resetcommand no longer removes the user'spodman.sockAPI socket. - When using Netavark v1.15 and higher, containers in non-default networks will no longer have the default search domain
dns.podmanadded. Queries resolving such names will still work. - Stopping a Quadlet
.networkunit will now delete the network (if no containers are actively using it) (#23678). - For security hardening, the
/proc/interruptsand/sys/devices/system/cpu/$CPU/thermal_throttlepaths are now masked by default in containers (#25634).
Bugfixes
- Fixed a bug where healthchecks would still run while a container was paused (#24590).
- Fixed a bug where the remote Podman client on Windows could not mount named volumes with a single-character name into containers (#25218).
- Fixed a bug where mounting an image could panic when run without
CAP_SYS_ADMIN(#25241). - Fixed a bug where Podman would not report errors when setting up healthchecks (#25034).
- Fixed a bug where the
podman execcommand would not add the additional groups of the user the exec session was run as unless the user was explicitly added with the--useroption (#25610). - Fixed a bug where errors during the
podman network connectandpodman network disconnectcommands could create errors in the database which would causepodman inspecton the container to fail. - Fixed a bug where the
podman kube generatecommand did not correctly generate YAML for volume mounts using a subpath. - Fixed a bug where the
podman system dfcommand could show a negative reclaimable size. - Fixed a bug where accessing a rootful
podman machineVM that was notpodman-machine-default(the default VM) with thepodman machine sshcommand would put the user into the rootless shell (#25332). - Fixed a bug where the
podman machine initwould report nonsensical memory values in error messages when trying to create a machine with more memory than the system. - Fixed a bug where the remote Podman client's
podman cpcommand would, on Windows, often fail to copy files into the container due to improper handling of Windows paths (#14862). - Fixed a bug where the
podman container clonecommand did not correctly copy healthcheck settings to the new container (#21630). - Fixed a bug where the
podman kube playcommand would fail to start empty pods (#25786). - Fixed a bug where the
podman volume lscommand did not output headers when no volumes were present (#25911). - Fixed a bug where healthcheck configuration provided by a container's image could not be overridden unless the
--health-cmdoption was specified when creating the container (#20212). - Fixed a bug where the
--useroption topodman createandpodman runcould not be used with users added to the container by the--hostuseroption (#25805).
API
- Fixed a bug where the Compat Create API for Containers ignored ulimits specified in the request when Podman was run rootless (#25881).
Misc
- Erroneous errors from the
ExecStartAndAttach()function in the Go bindings for the REST API have been silenced, where the function would incorrectly report errors when stdin was consumed after the exec session was stopped (#25344). - Updated Buildah to v1.40.0
- Updated the containers/common library to v0.63.0
- Updated the containers/image library to v5.35.0
- Updated the containers/storage library to v1.58.0