Releases: containers/podman
v4.9.4
Security
- Fixed CVE-2024-1753 in Buildah and podman buildwhich allowed a user to write files to the/directory of the host machine if selinux was not enabled.
Bugfixes
- Fixed a bug where health check status would be updated to "healthy" before the startup delay had expired.
v5.0.0
5.0.0
Security
- Fixed CVE-2024-1753 in Buildah and podman buildwhich allowed a user to write files to the/directory of the host machine if selinux was not enabled.
Features
- VMs created by podman machinecan now use the native Apple hypervisor (applehv) when run on MacOS.
- A new command has been added, podman machine reset, which will remove all existingpodman machineVMs and relevant configurations.
- The podman manifest addcommand now supports a new--artifactoption to add OCI artifacts to a manifest list.
- The podman create,podman run, andpodman pushcommands now support the--retryand--retry-delayoptions to configure retries for pushing and pulling images.
- The podman runandpodman execcommands now support a new option,--preserve-fd, which allows passing a list of file descriptors into the container (as an alternative to--preserve-fds, which passes a specific number of file descriptors).
- Quadlet now supports templated units (#17744).
- The podman kube playcommand can now create image-based volumes using thevolume.podman.io/imageannotation.
- Containers created with podman kube playcan now include volumes from other containers (similar to the--volumes-fromoption) using a new annotation,io.podman.annotations.volumes-from(#16819).
- Pods created with podman kube playcan now set user namespace options through the theio.podman.annotations.usernsannotation in the pod definition (#20658).
- Macvlan and ipvlan networks can adjust the name of the network interface created inside containers via the new containers.conffieldinterface_name(#21313).
- The --gpusoption topodman createandpodman runis now compatible with Nvidia GPUs (#21156).
- The --mountoption topodman createandpodman runsupports a new mount option,no-dereference, to mount a symlink (instead of its dereferenced target) into a container (#20098).
- Podman now supports a new global option, --config, to point to a Docker configuration where we can source registry login credentials.
- The podman ps --formatcommand now supports a new format specifier,.Label(#20957).
- The uidmappingandgidmappingoptions to thepodman run --userns=autooption can now map to host IDs by prefixing host IDs with the@symbol.
- Quadlet now supports systemd-style drop-in directories.
- Quadlet now supports creating pods via new .podunit files (#17687).
- Quadlet now supports two new keys, EntrypointandStopTimeout, in.containerfiles (#20585 and #21134).
- Quadlet now supports specifying the Ulimitkey multiple times in.containerfiles to set more than one ulimit on a container.
- Quadlet now supports setting the Notifykey tohealthyin.containerfiles, to only sdnotify that a container has started when its health check begins passing (#18189).
Breaking Changes
- The backend for the podman machinecommands has seen extensive rewrites. Configuration files have changed format and VMs from Podman 4.x and earlier are no longer usable.podman machineVMs must be recreated with Podman 5.
- The podman machine initcommand now pulls images as OCI artifacts, instead of using HTTP. As a result, a validpolicy.jsonfile is required on the host. Windows and Mac installers have been changed to install this file.
- QEMU is no longer a supported VM provider for podman machineon Mac. Instead, the native Apple hypervisor is supported.
- The ConfigPathandImagefields are no longer provided by thepodman machine inspectcommand. Users can also no longer use{{ .ConfigPath }}or{{ .Image }}as arguments topodman machine inspect --format.
- The output of podman inspectfor containers has seen a number of breaking changes to improve Docker compatibility, including changingEntrypointfrom a string to an array of strings and StopSignal from an int to a string.
- The podman inspectcommand for containers now returns nil for healthchecks when inspecting containers without healthchecks.
- The podman pod inspectcommand now outputs a JSON array regardless of the number of pods inspected (previously, inspecting a single pod would omit the array).
- It is no longer possible to create new BoltDB databases; attempting to do so will result in an error. All new Podman installations will now use the SQLite database backend. Existing BoltDB databases remain usable.
- Support for CNI networking has been gated by a build tag and will not be enabled by default.
- Podman will now print warnings when used on cgroups v1 systems. Support for cgroups v1 is deprecated and will be removed in a future release. The PODMAN_IGNORE_CGROUPSV1_WARNINGenvironment variable can be set to suppress warnings.
- Network statistics sent over the Docker API are now per-interface, and not aggregated, improving Docker compatibility.
- The default tool for rootless networking has been swapped from slirp4netnstopastafor improved performance. As a result, networks namedpastaare no longer supported.
- The --imageoption replaces the now deprecated--image-pathoption forpodman machine init.
- The output of podman events --format "{{json .}}"has been changed to improve Docker compatibility, including thetimeandtimeNanofields (#14993).
- The name of podman machineVMs and the username used within the VM are now validated and must match this regex:[a-zA-Z0-9][a-zA-Z0-9_.-]*.
- Using multiple filters with the List Images REST API now combines the filters with AND instead of OR, improving Docker compatibility (#18412).
- The parsing for a number of Podman CLI options which accept arrays has been changed to no longer accept string-delineated lists, and instead to require the option to be passed multiple times. These options are --annotationtopodman manifest annotateandpodman manifest add, the--configmap,--log-opt, and--annotationoptions topodman kube play, the--pubkeysfileoption topodman image trust set, the--encryption-keyand--decryption-keyoptions topodman create,podman run,podman pushandpodman pull, the--env-fileoption topodman exec, the--bkio-weight-device,--device-read-bps,--device-write-bps--device-read-iops,--device-write-iops,--device,--label-file,--chrootdirs,--log-opt, and--env-fileoptions topodman createandpodman run, and the--hooks-dirand--moduleglobal options.
Changes
- The podman system resetcommand no longer waits for running containers to gracefully stop, and instead immediately sends SIGKILL (#21874).
- The podman network inspectcommand now includes running containers using the network in its output (#14126).
- The podman composecommand is now supported on non-AMD64/ARM64 architectures.
- VMs created by podman machinewill now pass HTTP proxy environment variables into the VM for all providers.
- The --no-truncoption to thepodman kube playandpodman kube generatecommands has been deprecated. Podman now complies to the Kubernetes specification for annotation size, removing the need for this option.
- The DOCKER_HOSTenvironment variable will be set by default for rootless users when podman-docker is installed.
- Connections from podman system connectionand farms frompodman farmare now written to a new configuration file calledpodman-connections.conf. As a result, Podman no longer writes tocontainers.conf. Existing connections fromcontainers.confwill still be respected.
- Most podman farmsubcommands (save forpodman farm build) no longer need to connect to the machines in the farm to run.
- The podman createandpodman runcommands no longer require specifying an entrypoint on the command line when the container image does not define one. In this case, an empty command will be passed to the OCI runtime, and the resulting behavior is runtime-specific.
- The default SELinux label for content mounted from the host in podman machineVMs on Mac is nowsystem_u:object_r:nfs_t:s0so that it can be shared with all containers without issue.
- Newly-created VMs created by podman machinewill now share a single SSH key key for access. As a result,podman machine rm --save-keysis deprecated as the key will persist by default.
Bugfixes
- Fixed a bug where the podman statscommand would not show network statistics when thepastanetwork mode was used.
- Fixed a bug where podman machineVMs using the HyperV provider could not mount shares on directories that did not yet exist.
- Fixed a bug where the podman composecommand did not respect the--connectionand--urloptions.
- Fixed a bug where the podman stop -t -1command would wait for 0 seconds, not infinite seconds, before sending SIGKILL (#21811).
- Fixed a bug where Podman could deadlock when cleaning up a container when the slirp4netnsnetwork mode was used with a restart policy ofalwaysor `unless...
v5.0.0-RC7
This will be the final v5.0.0 release candidate. If all goes well, we expect a final release early next week. Release notes follow:
Features
- VMs created by podman machinecan now use the native Apple hypervisor (applehv) when run on MacOS.
- A new command has been added, podman machine reset, which will remove all existingpodman machineVMs and relevant configurations.
- The podman manifest addcommand now supports a new--artifactoption to add OCI artifacts to a manifest list.
- The podman create,podman run, andpodman pushcommands now support the--retryand--retry-delayoptions to configure retries for pushing and pulling images.
- The podman runandpodman execcommands now support a new option,--preserve-fd, which allows passing a list of file descriptors into the container (as an alternative to--preserve-fds, which passes a specific number of file descriptors).
- Quadlet now supports templated units (#17744).
- The podman kube playcommand can now create image-based volumes using thevolume.podman.io/imageannotation.
- Containers created with podman kube playcan now include volumes from other containers (similar to the--volumes-fromoption) using a new annotation,io.podman.annotations.volumes-from(#16819).
- Pods created with podman kube playcan now set user namespace options through the theio.podman.annotations.usernsannotation in the pod definition (#20658).
- Macvlan and ipvlan networks can adjust the name of the network interface created inside containers via the new containers.conffieldinterface_name(#21313).
- The --gpusoption topodman createandpodman runis now compatible with Nvidia GPUs (#21156).
- The --mountoption topodman createandpodman runsupports a new mount option,no-dereference, to mount a symlink (instead of its dereferenced target) into a container (#20098).
- Podman now supports a new global option, --config, to point to a Docker configuration where we can source registry login credentials.
- The podman ps --formatcommand now supports a new format specifier,.Label(#20957).
- The uidmappingandgidmappingoptions to thepodman run --userns=autooption can now map to host IDs by prefixing host IDs with the@symbol.
- Quadlet now supports systemd-style drop-in directories.
- Quadlet now supports creating pods via new .podunit files (#17687).
- Quadlet now supports two new keys, EntrypointandStopTimeout, in.containerfiles (#20585 and #21134).
- Quadlet now supports specifying the Ulimitkey multiple times in.containerfiles to set more than one ulimit on a container.
- Quadlet now supports setting the Notifykey tohealthyin.containerfiles, to only sdnotify that a container has started when its health check begins passing (#18189).
Breaking Changes
- The backend for the podman machinecommands has seen extensive rewrites. Configuration files have changed format and VMs from Podman 4.x and earlier are no longer usable.podman machineVMs must be recreated with Podman 5.
- The podman machine initcommand now pulls images as OCI artifacts, instead of using HTTP. As a result, a validpolicy.jsonfile is required on the host. Windows and Mac installers have been changed to install this file.
- QEMU is no longer a supported VM provider for podman machineon Mac. Instead, the native Apple hypervisor is supported.
- The ConfigPathandImagefields are no longer provided by thepodman machine inspectcommand. Users can also no longer use{{ .ConfigPath }}or{{ .Image }}as arguments topodman machine inspect --format.
- The output of podman inspectfor containers has seen a number of breaking changes to improve Docker compatibility, including changingEntrypointfrom a string to an array of strings and StopSignal from an int to a string.
- The podman inspectcommand for containers now returns nil for healthchecks when inspecting containers without healthchecks.
- The podman pod inspectcommand now outputs a JSON array regardless of the number of pods inspected (previously, inspecting a single pod would omit the array).
- It is no longer possible to create new BoltDB databases; attempting to do so will result in an error. All new Podman installations will now use the SQLite database backend. Existing BoltDB databases remain usable.
- Support for CNI networking has been gated by a build tag and will not be enabled by default.
- Podman will now print warnings when used on cgroups v1 systems. Support for cgroups v1 is deprecated and will be removed in a future release. The PODMAN_CGROUPSV1_WARNINGenvironment variable can be set to suppress warnings.
- Network statistics sent over the Docker API are now per-interface, and not aggregated, improving Docker compatibility.
- The default tool for rootless networking has been swapped from slirp4netnstopastafor improved performance. As a result, networks namedpastaare no longer supported.
- The --imageoption replaces the now deprecated--image-pathoption forpodman machine init.
- The output of podman events --format "{{json .}}"has been changed to improve Docker compatibility, including thetimeandtimeNanofields (#14993).
- The name of podman machineVMs and the username used within the VM are now validated and must match this regex:[a-zA-Z0-9][a-zA-Z0-9_.-]*.
- Using multiple filters with the List Images REST API now combines the filters with AND instead of OR, improving Docker compatibility (#18412).
- The parsing for a number of Podman CLI options which accept arrays has been changed to no longer accept string-delineated lists, and instead to require the option to be passed multiple times. These options are --annotationtopodman manifest annotateandpodman manifest add, the--configmap,--log-opt, and--annotationoptions topodman kube play, the--pubkeysfileoption topodman image trust set, the--encryption-keyand--decryption-keyoptions topodman create,podman run,podman pushandpodman pull, the--env-fileoption topodman exec, the--bkio-weight-device,--device-read-bps,--device-write-bps--device-read-iops,--device-write-iops,--device,--label-file,--chrootdirs,--log-opt, and--env-fileoptions topodman createandpodman run, and the--hooks-dirand--moduleglobal options.
Changes
- The podman system resetcommand no longer waits for running containers to gracefully stop, and instead immediately sends SIGKILL (#21874).
- The podman network inspectcommand now includes running containers using the network in its output (#14126).
- The podman composecommand is now supported on non-AMD64/ARM64 architectures.
- VMs created by podman machinewill now pass HTTP proxy environment variables into the VM for all providers.
- The --no-truncoption to thepodman kube playandpodman kube generatecommands has been deprecated. Podman now complies to the Kubernetes specification for annotation size, removing the need for this option.
- The DOCKER_HOSTenvironment variable will be set by default for rootless users when podman-docker is installed.
- Connections from podman system connectionand farms frompodman farmare now written to a new configuration file calledpodman-connections.conf. As a result, Podman no longer writes tocontainers.conf. Existing connections fromcontainers.confwill still be respected.
- Most podman farmsubcommands (save forpodman farm build) no longer need to connect to the machines in the farm to run.
- The podman createandpodman runcommands no longer require specifying an entrypoint on the command line when the container image does not define one. In this case, an empty command will be passed to the OCI runtime, and the resulting behavior is runtime-specific.
- The default SELinux label for content mounted from the host in podman machineVMs on Mac is nowsystem_u:object_r:nfs_t:s0so that it can be shared with all containers without issue.
- Newly-created VMs created by podman machinewill now share a single SSH key key for access. As a result,podman machine rm --save-keysis deprecated as the key will persist by default.
Bugfixes
- Fixed a bug where the podman statscommand would not show network statistics when thepastanetwork mode was used.
- Fixed a bug where podman machineVMs using the HyperV provider could not mount shares on directories that did not yet exist.
- Fixed a bug where the podman composecommand did not respect the--connectionand--urloptions.
- Fixed a bug where the podman stop -t -1command would wait for 0 seconds, not infinite seconds, before sending SIGKILL (#21811).
- Fixed a bug where Podman could deadlock when cleaning up a container when the slirp4netnsnetwork mode was used with a restart policy ofalwaysorunless-stoppedoron-failureand a user namespace (#21477).
- Fixed a...
v5.0.0-RC6
This is the sixth release candidate of Podman 5.0.0. Full release notes will be available soon.
v5.0.0-RC5
This is the fifth release candidate of Podman 5.0.0. Full release notes will be available soon.
v5.0.0-rc4
This is the fourth release candidate of Podman 5.0.0. Full release notes will be available soon.
v5.0.0-RC3
This is the third release candidate of Podman 5.0.0. Full release notes will be available with the fourth release candidate.
v5.0.0-RC2
This is the second release candidate for Podman v5.0.0.
Release notes are not yet available, but will be published as part of a subsequent release candidate.
v4.9.3
v5.0.0-RC1
This is the first release candidate for Podman v5.0.0.
Release notes are not yet available, but will be published as part of a subsequent release candidate.