Skip to content

Releases: containers/podman

v4.7.2

31 Oct 14:07
v4.7.2
750b4c3
Compare
Choose a tag to compare

Security

Bugfixes

  • WSL: Fixed podman compose command.
  • Fixed a bug in podman compose to try all configured providers before throwing an error (#20502).

v4.7.1

05 Oct 17:18
v4.7.1
ef83eeb
Compare
Choose a tag to compare

Bugfixes

  • Fixed a bug involving non-English locales of Windows where machine installs using user-mode networking were rejected due to erroneous version detection (#20209).
  • Fixed a regression in --env-file handling (#19565).
  • Fixed a bug where podman inspect would fail when stat'ing a device failed.

API

  • The network list compat API endpoint is now much faster (#20035).

v4.7.0

27 Sep 18:01
v4.7.0
073183f
Compare
Choose a tag to compare

Security

  • Now the io.containers.capabilities LABEL in an image can be an empty string.

Features

  • New command set: podman farm [create,list,remove,update] has been created to "farm" out builds to machines running Podman for different architectures.
  • New command: podman compose as a thin wrapper around an external compose provider such as docker-compose or podman-compose.
  • FreeBSD: podman run --device is now supported.
  • Linux: Add a new --module flag for Podman.
  • Podmansh: Timeout is now configurable using the podmansh_timeout option in containers.conf.
  • SELinux: Add support for confined users to create containers but restrict them from creating privileged containers.
  • WSL: Registers shared socket bindings on Windows, to allow other WSL distributions easy remote access (#15190).
  • WSL: Enabling user-mode-networking on older WSL2 generations will now detect an error with upgrade guidance.
  • The podman build command now supports two new options: --layer-label and --cw.
  • The podman kube generate command now supports generation of k8s DaemonSet kind (#18899).
  • The podman kube generate and podman kube play commands now support the k8s TerminationGracePeriodSeconds field (RH BZ#2218061).
  • The podman kube generate and podman kube play commands now support securityContext.procMount: Unmasked (#19881).
  • The podman generate kube command now supports a --podman-only flag to allow podman-only reserved annotations to be used in the generated YAML file. These annotations cannot be used by Kubernetes.
  • The podman kube generate now supports a --no-trunc flag that supports YAML files with annotations longer than 63 characters. Warning: if an annotation is longer than 63 chars, then the generated yaml file is not Kubernetes compatible.
  • An infra name annotation io.podman.annotations.infra.name is added in the generated yaml when the pod create command has --infra-name set. This annotation can also be used with kube play when wanting to customize the infra container name (#18312).
  • The syntax of --uidmap and --gidmap has been extended to lookup the parent user namespace and to extend default mappings (#18333).
  • The podman kube commands now support the List kind (#19052).
  • The podman kube play command now supports environment variables in kube.yaml (#15983).
  • The podman push and podman manifest push commands now support the --force-compression optionto prevent reusing other blobs (#18860).
  • The podman manifest push command now supports --add-compression to push with compressed variants.
  • The podman manifest push command now honors the add_compression field from containers.conf if --add-compression is not set.
  • The podman run and podman create --mount commands now support the ramfs type (#19659).
  • When running under systemd (e.g., via Quadlet), Podman will extend the start timeout in 30 second steps up to a maximum of 5 minutes when pulling an image.
  • The --add-host option now accepts the special string host-gateway instead of an IP Address, which will be mapped to the host IP address.
  • The podman generate systemd command is deprecated. Use Quadlet for running containers and pods under systemd.
  • The podman secret rm command now supports an --ignore option.
  • The --env-file option now supports multiline variables (#18724).
  • The --read-only-tmpfs flag now affects /dev and /dev/shm as well as /run, /tmp, /var/tmp (#12937).
  • The Podman --mount option now supports bind mounts passed as globs.
  • The --mount option can now be specified in containers.conf using the mounts field.
  • The podman stats now has an --all option to get all containers stats (#19252).
  • There is now a new --sdnotify=healthy policy where Podman sends the READY message once the container turns healthy (#6160).
  • Temporary files created when dealing with images in /var/tmp will automatically be cleaned up on reboot.
  • There is now a new filter option since for podman volume ls and podman volume prune (#19228).
  • The podman inspect command now has tab-completion support (#18672).
  • The podman kube play command now has support for the use of reserved annotations in the generated YAML.
  • The progress bar is now displayed when decompressing a Podman machine image (#19240).
  • The podman secret inspect command supports a new option --showsecret which will output the actual secret.
  • The podman secret create now supports a --replace option, which allows you to modify secrets without replacing containers.
  • The podman login command can now read the secret for a registry from its secret database created with podman secret create (#18667).
  • The remote Podman client’s podman play kube command now works with the --userns option (#17392).

Changes

  • The /tmp and /var/tmp inside of a podman kube play will no longer be noexec.
  • The limit of inotify instances has been bumped from 128 to 524288 for podman machine (#19848).
  • The podman kube play has been improved to only pull a newer image for the "latest" tag (#19801).
  • Pulling from an oci transport will use the optional name for naming the image.
  • The podman info command will always display the existence of the Podman socket.
  • The echo server example in socket_activation.md has been rewritten to use quadlet instead of podman generate systemd.
  • Kubernetes support table documentation correctly show volumes support.
  • The podman auto-update manpage and documentation has been updated and now includes references to Quadlet.

Quadlet

  • Quadlet now supports setting Ulimit values.
  • Quadlet now supports setting the PidsLimit option in a container.
  • Quadlet unit files allow DNS field in Network group and DNS, DNSSearch, and DNSOption field in Container group (#19884).
  • Quadlet now supports ShmSize option in unit files.
  • Quadlet now recursively calls in user directories for unit files.
  • Quadlet now allows the user to set the service working directory relative to the YAML or Unit files (17177).
  • Quadlet now allows setting user-defined names for Volume and Network units via the VolumeName and NetworkName directives, respectively.
  • Kube quadlets can now support autoupdate.

Bugfixes

  • Fixed an issue where containers were being restarted after a podman kill.
  • Fixed a bug where events could report incorrect healthcheck results (#19237).
  • Fixed a bug where running a container in a pod didn't fail if volumes or mounts were specified in the containers.conf file.
  • Fixed a bug where pod cgroup limits were not being honored after a reboot (#19175).
  • Fixed a bug where podman rm -af could fail to remove containers under some circumstances (#18874).
  • Fixed a bug in rootless to clamp oom_score_adj to current value if it is too low (#19829).
  • Fixed a bug where --hostuser was being parsed in base 8 instead of base 10 (#19800).
  • Fixed a bug where kube down would error when an object did not exist (#19711).
  • Fixed a bug where containers created via DOCKER API without specifying StopTimeout had StopTimeout defaulting to 0 seconds (#19139).
  • Fixed a bug in podman exec to set umask to match the container it's execing into (#19713).
  • Fixed a bug where podman kube play failed to set a container's Umask to the default 0022.
  • Fixed a bug to automatically reassign Podman's machine ssh port on Windows when it conflicts with in-use system ports (#19554).
  • Fixed a bug where locales weren't passed to conmon correctly, resulting in a crash if some characters were specified over CLI (containers/common/#272).
  • Fixed a bug where podman top would sometimes not print the full output (#19504).
  • Fixed a bug were podman logs --tail could return incorrect lines when the k8s-file logger is used (#19545).
  • Fixed a bug where podman stop did not ignore cidfile not existing when user specified --ignore flag (#19546).
  • Fixed a bug where a container with an image volume and an inheri...
Read more

v4.7.0-rc1

15 Sep 22:50
v4.7.0-rc1
7845dd1
Compare
Choose a tag to compare
v4.7.0-rc1 Pre-release
Pre-release

Security

  • Now the io.containers.capabilities LABEL in an image can be an empty string.

Features

  • New command set: podman farm [create,list,remove,update] has been created to "farm" out builds to machines running Podman for different architectures.
  • New command: podman compose as a thin wrapper around an external compose provider such as docker-compose or podman-compose.
  • FreeBSD: podman run --device is now supported.
  • Linux: Add a new --module flag for Podman.
  • Podmansh: Timeout is now configurable using the podmansh_timeout option in containers.conf.
  • SELinux: Add support for confined users to create containers but restrict them from creating privileged containers.
  • WSL: Registers shared socket bindings on Windows, to allow other WSL distributions easy remote access (#15190).
  • WSL: Enabling user-mode-networking on older WSL2 generations will now detect an error with upgrade guidance.
  • The podman build command now supports two new options: --layer-label and --cw.
  • The podman kube generate command now supports generation of k8s DaemonSet kind (#18899).
  • The podman kube generate and podman kube play commands now support the k8s TerminationGracePeriodSeconds field (RH BZ#2218061).
  • The podman kube generate and podman kube play commands now support securityContext.procMount: Unmasked (#19881).
  • The podman generate kube command now supports a --podman-only flag to allow podman-only reserved annotations to be used in the generated YAML file. These annotations cannot be used by Kubernetes.
  • The podman kube generate now supports a --no-trunc flag that supports YAML files with annotations longer than 63 characters. Warning: if an annotation is longer than 63 chars, then the generated yaml file is not Kubernetes compatible.
  • An infra name annotation io.podman.annotations.infra.name is added in the generated yaml when the pod create command has --infra-name set. This annotation can also be used with kube play when wanting to customize the infra container name (#18312).
  • The syntax of --uidmap and --gidmap has been extended to lookup the parent user namespace and to extend default mappings (#18333).
  • The podman kube commands now support the List kind (#19052).
  • The podman kube play command now supports environment variables in kube.yaml (#15983).
  • The podman push and podman manifest push commands now support the --force-compression optionto prevent reusing other blobs (#18860).
  • The podman manifest push command now supports --add-compression to push with compressed variants.
  • The podman manifest push command now honors the add_compression field from containers.conf if --add-compression is not set.
  • The podman run and podman create --mount commands now support the ramfs type (#19659).
  • When running under systemd (e.g., via Quadlet), Podman will extend the start timeout in 30 second steps up to a maximum of 5 minutes when pulling an image.
  • The --add-host option now accepts the special string host-gateway instead of an IP Address, which will be mapped to the host IP address.
  • The podman generate systemd command is deprecated. Use Quadlet for running containers and pods under systemd.
  • The podman secret rm command now supports an --ignore option.
  • The --env-file option now supports multiline variables (#18724).
  • The --read-only-tmpfs flag now affects /dev and /dev/shm as well as /run, /tmp, /var/tmp (#12937).
  • The Podman --mount option now supports bind mounts passed as globs.
  • The --mount option can now be specified in containers.conf using the mounts field.
  • The podman stats now has an --all option to get all containers stats (#19252).
  • There is now a new --sdnotify=healthy policy where Podman sends the READY message once the container turns healthy (#6160).
  • Temporary files created when dealing with images in /var/tmp will automatically be cleaned up on reboot.
  • There is now a new filter option since for podman volume ls and podman volume prune (#19228).
  • The podman inspect command now has tab-completion support (#18672).
  • The podman kube play command now has support for the use of reserved annotations in the generated YAML.
  • The progress bar is now displayed when decompressing a Podman machine image (#19240).
  • The podman secret inspect command supports a new option --showsecret which will output the actual secret.
  • The podman secret create now supports a --replace option, which allows you to modify secrets without replacing containers.
  • The podman login command can now read the secret for a registry from its secret database created with podman secret create (#18667).
  • The remote Podman client’s podman play kube command now works with the --userns option (#17392).

Changes

  • The /tmp and /var/tmp inside of a podman kube play will no longer be noexec.
  • The limit of inotify instances has been bumped from 128 to 524288 for podman machine (#19848).
  • The podman kube play has been improved to only pull a newer image for the "latest" tag (#19801).
  • Pulling from an oci transport will use the optional name for naming the image.
  • The podman info command will always display the existence of the Podman socket.
  • The echo server example in socket_activation.md has been rewritten to use quadlet instead of podman generate systemd.
  • Kubernetes support table documentation correctly show volumes support.
  • The podman auto-update manpage and documentation has been updated and now includes references to Quadlet.

Quadlet

  • Quadlet now supports setting Ulimit values.
  • Quadlet now supports setting the PidsLimit option in a container.
  • Quadlet unit files allow DNS field in Network group and DNS, DNSSearch, and DNSOption field in Container group (#19884).
  • Quadlet now supports ShmSize option in unit files.
  • Quadlet now recursively calls in user directories for unit files.
  • Quadlet now allows the user to set the service working directory relative to the YAML or Unit files (17177).
  • Quadlet now allows setting user-defined names for Volume and Network units via the VolumeName and NetworkName directives, respectively.
  • Kube quadlets can now support autoupdate.

Bugfixes

  • Fixed an issue where containers were being restarted after a podman kill.
  • Fixed a bug where events could report incorrect healthcheck results (#19237.
  • Fixed a bug where running a container in a pod didn't fail if volumes or mounts were specified in the containers.conf file.
  • Fixed a bug where pod cgroup limits were not being honored after a reboot (#19175).
  • Fixed a bug where podman rm -af could fail to remove containers under some circumstances (#18874).
  • Fixed a bug in rootless to clamp oom_score_adj to current value if it is too low (#19829).
  • Fixed a bug where --hostuser was being parsed in base 8 instead of base 10 (#19800).
  • Fixed a bug where kube down would error when an object did not exist (#19711).
  • Fixed a bug where containers created via DOCKER API without specifying StopTimeout had StopTimeout defaulting to 0 seconds (#19139).
  • Fixed a bug in podman exec to set umask to match the container it's execing into (#19713).
  • Fixed a bug where podman kube play failed to set a container's Umask to the default 0022.
  • Fixed a bug to automatically reassign Podman's machine ssh port on Windows when it conflicts with in-use system ports (#19554).
  • Fixed a bug where locales weren't passed to conmon correctly, resulting in a crash if some characters were specified over CLI (containers/common/#272).
  • Fixed a bug where podman top would sometimes not print the full output (#19504).
  • Fixed a bug were podman logs --tail could return incorrect lines when the k8s-file logger is used (#19545).
  • Fixed a bug where podman stop did not ignore cidfile not existing when user specified --ignore flag (#19546).
  • Fixed a bug where a container with an image volume and an inherit...
Read more

v4.6.2

28 Aug 19:14
v4.6.2
5db42e8
Compare
Choose a tag to compare

Changes

  • Fixed a performance issue when calculating diff sizes in overlay. The podman system df command should see a significant performance improvement (#19467).

Bugfixes

  • Fixed a bug where containers in a pod would use the pod restart policy over the set container restart policy (#19671).

API

  • Fixed a bug in the Compat Build endpoint where the pull query parameter did not parse 0/1 as a boolean (#17778).

Misc

  • Updated the containers/storage library to v1.48.1

v4.6.1

10 Aug 20:55
v4.6.1
f3069b3
Compare
Choose a tag to compare

Quadlet

  • Quadlet now selects the first Quadlet file found when multiple Quadlets exist with the same name.

API

  • Fixed a bug in the container kill endpoint to correctly return 409 when a container is not running (#19368).

Misc

  • Updated Buildah to v1.31.2
  • Updated the containers/common library to v0.55.3

v4.6.0

20 Jul 22:06
v4.6.0
38e6fab
Compare
Choose a tag to compare

Features

  • The podman manifest inspect command now supports the --authfile option, for authentication purposes.
  • The podman wait command now supports --condition={healthy,unhealthy}, allowing waits on successful health checks.
  • The podman push command now supports a new option, --compression-level, which specifies the compression level to use (#18939).
  • The podman machine start command, when run with --log-level=debug, now creates a console window to display the virtual machine while booting.
  • Podman now supports a new option, --imagestore, which allows images to be stored in a different directory than the graphroot.
  • The --ip-range option to the podman network create command now accepts a new syntax, <startIP>-<endIP>, which allows more flexibility when limiting the ip range that Podman assigns.
  • [Tech Preview] A new command, podmansh, has been added, which executes a user shell within a container when the user logs into the system. The container that the users get added to can be defined via a Podman Quadlet file. This feature is currently a Tech Preview which means it's ready for users to try out but changes can be expected in upcoming versions.
  • The podman network create command supports a new --option, bclim, for the macvlan driver.
  • The podman network create command now supports adding static routes using the --route option.
  • The podman network create command supports a new --option, no_default_route for all drivers.
  • The podman info command now prints network information about the binary path, package version, program version and DNS information (#18443).
  • The podman info command now displays the number of free locks available, helping to debug lock exhaustion scenarios.
  • The podman info command now outputs information about pasta, if it exists in helper_binaries_dir or $PATH.
  • The remote Podman client’s podman build command now accepts Containerfiles that are not in the context directory (#18239).
  • The remote Podman client’s podman play kube command now supports the --configmap option (#17513).
  • The podman kube play command now supports multi-doc YAML files for configmap arguments. (#18537).
  • The podman pod create command now supports a new flag, --restart, which sets the restart policy for all the containers in a pod.
  • The --format={{.Restarts}} option to the podman ps command now shows the number of times a container has been restarted based on its restart policy.
  • The --format={{.Restarts}} option to the podman pod ps command now shows the total number of container restarts in a pod.
  • The podman machine provider can now be specified via the CONTAINERS_MACHINE_PROVIDER environment variable, as well as via the provider field in containers.conf (#17116).
  • A default list of pasta arguments can now be set in containers.conf via pasta_options.
  • The podman machine init and podman machine set commands now support a new option, --user-mode-networking, which improves interops with VPN configs that drop traffic from WSL networking, on Windows.
  • The remote Podman client’s podman push command now supports the --digestfile option (#18216).
  • Podman now supports a new option, --out, that allows redirection or suppression of STDOUT (#18120).

Changes

  • When looking up an image by digest, the entire repository of the specified value is now considered. This aligns with Docker's behavior since v20.10.20. Previously, both the repository and the tag was ignored and Podman looked for an image with only a matching digest. Ignoring the name, repository, and tag of the specified value can lead to security issues and is considered harmful.
  • The podman system service command now emits a warning when binding to a TCP socket. This is not a secure configuration and the Podman team recommends against using it.
  • The podman top command no longer depends on ps(1) being present in the container image and now uses the one from the host (#19001).
  • The --filter id=xxx option will now treat xxx as a CID prefix, and not as a regular expression (#18471).
  • The --filter option now requires multiple --filter flags to specify multiple filters. It will no longer support the comma syntax (--filter label=a,label=b).
  • The slirp4netns binary for will now be searched for in paths specified by the helper_binaries_dir option in containers.conf (#18239).
  • Podman machine now updates /run/docker.sock within the guest to be consistent with its rootless/rootful setting (#18480).
  • The podman system df command now counts files which podman generates for use with specific containers as part of the disk space used by those containers, and which can be reclaimed by removing those containers. It also counts space used by files it associates with specific images and volumes as being used by those images and volumes.
  • The podman build command now returns a clearer error message when the Containerfile cannot be found. (#16354).
  • Containers created with --pid=host will no longer print errors on podman stop (#18460).
  • The podman manifest push command no longer requires a destination to be specified. If a destination is not provided, the source is used as the destination (#18360).
  • The podman system reset command now warns the user that the graphroot and runroot directories will be deleted (#18349), (#18295).
  • The package and package-install targets in Makefile have now been fixed and also renamed to rpm and rpm-install respectively for clarity (#18817).

Quadlet

  • Quadlet now exits with a non-zero exit code when errors are found (#18778).
  • Rootless podman quadlet files can now be installed in /etc/containers/systemd/users directory.
  • Quadlet now supports the AutoUpdate option.
  • Quadlet now supports the Mask and Unmask options.
  • Quadlet now supports the WorkingDir option, which specifies the default working dir in a container.
  • Quadlet now supports the Sysctl option, which sets namespaced kernel parameters for containers (#18727).
  • Quadlet now supports the SecurityLabelNetsted=true option, which allows nested SELinux containers.
  • Quadlet now supports the Pull option in .container files (#18779).
  • Quadlet now supports the ExitCode field in .kube files, which reflects the exit codes of failed containers.
  • Quadlet now supports PodmanArgs field.
  • Quadlet now supports the HostName field, which sets the container's host name, in .container files (#18486).

Bugfixes

  • Fixed a bug where the podman machine start command would fail with a 255 exit code. It now waits for systemd-user sessions to be up, and for SSH to be ready, addressing the flaky machine starts (#17403).
  • Fixed a bug where the podman auto update command did not correctly use authentication files when contacting container registries.
  • Fixed a bug where --label option to the podman volume ls command would return volumes that matched any of the filters, not all of them (#19219).
  • Fixed a bug where the podman kube play command did not recognize containerPort names inside Kubernetes liveness probes. Now, liveness probes support both containerPort names as well as port numbers (#18645).
  • Fixed a bug where the --dns option to the podman run command was ignored for macvlan networks (#19169).
  • Fixed a bug in the podman system service command where setting LISTEN_FDS when listening on TCP would misbehave.
  • Fixed a bug where hostnames were not recognized as a network alias. Containers can now resolve other hostnames, in addition to their names (#17370).
  • Fixed a bug where the podman pod run command would error after a reboot on a non-systemd system (#19175).
  • Fixed a bug where the --syslog option returned a fatal error when no syslog server was found (#19075).
  • Fixed a bug where the --mount option would parse the readonly option incorrectly (#18995).
  • Fixed a bug where hook executables invoked by the podman run command set an incorrect working directory. It now sets the correct working directory pointing to the container bundle directory (#18907).
  • Fixed a bug where the -device-cgroup-rule option was silently ignored in rootless mode ([#18698](https://github.com/containers/podman/issu...
Read more

v4.6.0-RC2

13 Jul 19:47
v4.6.0-rc2
bfe2e0f
Compare
Choose a tag to compare
v4.6.0-RC2 Pre-release
Pre-release

Features

  • The podman manifest inspect command now supports the --authfile option, for authentication purposes.
  • The podman wait command now supports --condition={healthy,unhealthy}, allowing waits on successful health checks.
  • The podman push command now supports a new option, --compression-level, which specifies the compression level to use (#18939).
  • The podman machine start command, when run with --log-level=debug, now creates a console window to display the virtual machine while booting.
  • Podman now supports a new option, --imagestore, which allows images to be stored in a different directory than the graphroot.
  • The --ip-range option to the podman network create command now accepts a new syntax, <startIP>-<endIP>, which allows more flexibility when limiting the ip range that Podman assigns.
  • [Tech Preview] A new command, podmansh, has been added, which executes a user shell within a container when the user logs into the system. The container that the users get added to can be defined via a Podman Quadlet file. This feature is currently a Tech Preview which means it's ready for users to try out but changes can be expected in upcoming versions.
  • The podman network create command supports a new --option, bclim, for the macvlan driver.
  • The podman network create command now supports adding static routes using the --route option.
  • The podman network create command supports a new --option, no_default_route for all drivers.
  • The podman info command now prints network information about the binary path, package version, program version and DNS information (#18443).
  • The podman info command now displays the number of free locks available, helping to debug lock exhaustion scenarios.
  • The podman info command now outputs information about pasta, if it exists in helper_binaries_dir or $PATH.
  • The remote Podman client’s podman build command now accepts Containerfiles that are not in the context directory (#18239).
  • The remote Podman client’s podman play kube command now supports the --configmap option (#17513).
  • The podman kube play command now supports multi-doc YAML files for configmap arguments. (#18537).
  • The podman pod create command now supports a new flag, --restart, which sets the restart policy for all the containers in a pod.
  • The --format={{.Restarts}} option to the podman ps command now shows the number of times a container has been restarted based on its restart policy.
  • The --format={{.Restarts}} option to the podman pod ps command now shows the total number of container restarts in a pod.
  • The podman machine provider can now be specified via the CONTAINERS_MACHINE_PROVIDER environment variable, as well as via the provider field in containers.conf (#17116).
  • A default list of pasta arguments can now be set in containers.conf via pasta_options.
  • The podman machine init and podman machine set commands now support a new option, --user-mode-networking, which improves interops with VPN configs that drop traffic from WSL networking, on Windows.
  • The remote Podman client’s podman push command now supports the --digestfile option (#18216).
  • Podman now supports a new option, --out, that allows redirection or suppression of STDOUT (#18120).

Changes

  • The --filter id=xxx option will now treat xxx as a CID prefix, and not as a regular expression (#18471).
  • The --filter option now requires multiple --filter flags to specify multiple filters. It will no longer support the comma syntax (--filter label=a,label=b).
  • The slirp4netns binary for will now be searched for in paths specified by the helper_binaries_dir option in containers.conf (#18239).
  • Podman machine now updates /run/docker.sock within the guest to be consistent with its rootless/rootful setting (#18480).
  • The podman system df command now counts files which podman generates for use with specific containers as part of the disk space used by those containers, and which can be reclaimed by removing those containers. It also counts space used by files it associates with specific images and volumes as being used by those images and volumes.
  • The podman build command now returns a clearer error message when the Containerfile cannot be found. (#16354).
  • Containers created with --pid=host will no longer print errors on podman stop (#18460).
  • The podman manifest push command no longer requires a destination to be specified. If a destination is not provided, the source is used as the destination (#18360).
  • The podman system reset command now warns the user that the graphroot and runroot directories will be deleted (#18349), (#18295).

Quadlet

  • Quadlet now exits with a non-zero exit code when errors are found (#18778).
  • Rootless podman quadlet files can now be installed in /etc/containers/systemd/users directory.
  • Quadlet now supports the AutoUpdate option.
  • Quadlet now supports the Mask and Unmask options.
  • Quadlet now supports the WorkingDir option, which specifies the default working dir in a container.
  • Quadlet now supports the Sysctl option, which sets namespaced kernel parameters for containers (#18727).
  • Quadlet now supports the SecurityLabelNetsted=true option, which allows nested SELinux containers.
  • Quadlet now supports the Pull option in .container files (#18779).
  • Quadlet now supports the ExitCode field in .kube files, which reflects the exit codes of failed containers.
  • Quadlet now supports PodmanArgs field.
  • Quadlet now supports the HostName field, which sets the container's host name, in .container files (#18486).

Bugfixes

  • Fixed a bug where the podman machine start command would fail with a 255 exit code. It now waits for systemd-user sessions to be up, and for SSH to be ready, addressing the flaky machine starts (#17403).
  • Fixed a bug where the podman auto update command did not correctly use authentication files when contacting container registries.
  • Fixed a bug where the --dns option to the podman run command was ignored for macvlan networks (#19169).
  • Fixed a bug in the podman system service command where setting LISTEN_FDS when listening on TCP would misbehave.
  • Fixed a bug where hostnames were not recognized as a network alias. Containers can now resolve other hostnames, in addition to their names (#17370).
  • Fixed a bug where the podman pod run command would error after a reboot on a non-systemd system (#19175).
  • Fixed a bug where the --syslog option returned a fatal error when no syslog server was found (#19075).
  • Fixed a bug where the --mount option would parse the readonly option incorrectly (#18995).
  • Fixed a bug where hook executables invoked by the podman run command set an incorrect working directory. It now sets the correct working directory pointing to the container bundle directory (#18907).
  • Fixed a bug where the -device-cgroup-rule option was silently ignored in rootless mode (#18698).
  • Listing images is now more resilient towards concurrently running image removals.
  • Fixed a bug where the --force option to the podman kube down command would not remove volumes (#18797).
  • Fixed a bug where setting the --list-tags option in the podman search command would cause the command to ignore the --format option (#18939).
  • Fixed a bug where the podman machine start command did not properly translate the proxy IP.
  • Fixed a bug where the podman auto-update command would not restart dependent units (specified via Requires=) on auto update (#18926).
  • Fixed a bug where the podman pull command would print ids multiple times when using additional stores (#18647).
  • Fixed a bug where creating a container while setting unmask option to an empty array would cause the create to fail (#18848).
  • Fixed a bug where the propagation of proxy settings for QEMU VMs was broken.
  • Fixed a bug where the podman rm -fa command could fail to remove dependency containers such as pod infra containers (#18180).
  • Fixed a bug where --tz option to the podman create ...
Read more

v4.6.0-rc1

03 Jul 13:03
v4.6.0-rc1
4d59a0f
Compare
Choose a tag to compare
v4.6.0-rc1 Pre-release
Pre-release

Features

  • The podman wait command now supports --condition={healthy,unhealthy}, allowing waits on successful health checks.
  • The podman push command now supports a new option, --compression-level, which specifies the compression level to use (#18939).
  • The podman machine start command, when run with --log-level=debug, now creates a console window to display the virtual machine while booting.
  • Podman now supports a new option, --imagestore, which allows images to be stored in a different directory than the graphroot.
  • The --ip-range option to the podman network create command now accepts a new syntax, <startIP>-<endIP>, which allows more flexibility when limiting the ip range that Podman assigns.
  • [Tech Preview] A new command, podmansh, has been added, which executes a user shell within a container when the user logs into the system. The container that the users get added to can be defined via a Podman Quadlet file.
  • The podman network create command supports a new --option, bclim, for the macvlan driver.
  • The podman info command now prints network information about the binary path, package version, program version and DNS information (#18443).
  • The podman info command now displays the number of free locks available, helping to debug lock exhaustion scenarios.
  • The podman info command now outputs information about pasta, if it exists in helper_binaries_dir or $PATH.
  • The remote Podman client’s podman build command now accepts Containerfiles that are not in the context directory (#18239).
  • The remote Podman client’s podman play kube command now supports the --configmap option (#17513).
  • The podman kube play command now supports multi-doc YAML files for configmap arguments. (#18537).
  • The podman pod create command now supports a new flag, --restart, which sets the restart policy for all the containers in a pod.
  • The --format={{.Restarts}} option to the podman ps command now shows the number of times a container has been restarted based on its restart policy.
  • The --format={{.Restarts}} option to the podman pod ps command now shows the total number of container restarts in a pod.
  • The podman machine provider can now be specified via the CONTAINERS_MACHINE_PROVIDER environment variable, as well as via the provider field in containers.conf (#17116).
  • A default list of pasta arguments can now be set in containers.conf via pasta_options.
  • The podman machine init and podman machine set commands now support a new option, --user-mode-networking, which improves interops with VPN configs that drop traffic from WSL networking, on Windows.
  • The remote Podman client’s podman push command now supports the --digestfile option (#18216).
  • Podman now supports a new option, --out, that allows redirection or suppression of STDOUT (#18120).

Changes

  • The --filter id=xxx option will now treat xxx as a CID prefix, and not as a regular expression (#18471).
  • The --filter option now requires multiple --filter flags to specify multiple filters. It will no longer support the comma syntax (--filter label=a,label=b).
  • The slirp4netns binary for will now be searched for in paths specified by the helper_binaries_dir option in containers.conf (#18239).
  • Podman machine now updates /run/docker.sock within the guest to be consistent with its rootless/rootful setting (#18480).
  • The podman system df command now counts files which podman generates for use with specific containers as part of the disk space used by those containers, and which can be reclaimed by removing those containers. It also counts space used by files it associates with specific images and volumes as being used by those images and volumes.
  • The podman build command now returns a clearer error message when the Containerfile cannot be found. (#16354).
  • Containers created with --pid=host will no longer print errors on podman stop (#18460).
  • The podman manifest push command no longer requires a destination to be specified. If a destination is not provided, the source is used as the destination (#18360).
  • The podman system reset command now warns the user that the graphroot and runroot directories will be deleted (#18349), (#18295).

Quadlet

  • Quadlet now exits with a non-zero exit code when errors are found (#18778).
  • Rootless podman quadlet files can now be installed in /etc/containers/systemd/users directory.
  • Quadlet now supports the AutoUpdate option.
  • Quadlet now supports the Mask and Unmask options.
  • Quadlet now supports the WorkingDir option, which specifies the default working dir in a container.
  • Quadlet now supports the Sysctl option, which sets namespaced kernel parameters for containers (#18727).
  • Quadlet now supports the SecurityLabelNetsted=true option, which allows nested SELinux containers.
  • Quadlet now supports the Pull option in .container files (#18779).
  • Quadlet now supports the ExitCode field in .kube files, which reflects the exit codes of failed containers.
  • Quadlet now supports PodmanArgs field.
  • Quadlet now supports the HostName field, which sets the container's host name, in .container files (#18486).

Bugfixes

  • The podman machine start command now waits for systemd-user sessions to be up, addressing flaky machine starts (##17403).
  • Fixed a bug where setting the --list-tags option in the podman search command would cause the command to ignore the --format option (#18939).
  • Fixed a bug where the podman machine start command did not properly translate the proxy IP.
  • Fixed a bug where the podman auto-update command would not restart dependent units (specified via Requires=) on auto update (#18926).
  • Fixed a bug where the podman pull command would print ids multiple times when using additional stores (#18647).
  • Fixed a bug where creating a container while setting unmask option to an empty array would cause the create to fail (#18848).
  • Fixed a bug where the propagation of proxy settings for QEMU VMs was broken.
  • Fixed a bug where the podman rm -fa command could fail to remove dependency containers such as pod infra containers (#18180).
  • Fixed a bug where --tz option to the podman create and podman run commands would not create a proper localtime symlink to the zoneinfo file, which was causing some applications (e.g. java) to not read the timezone correctly.
  • Fixed a bug where lowering the ulimit after container creation would cause the container to fail (#18714).
  • Fixed a bug where signals were not forwarded correctly in rootless containers (#16091).
  • Fixed a bug where the --filter volume= option to the podman events command would not display the relevant events (#18618).
  • Fixed a bug in the podman wait command where containers created with the --restart=always option would result in the container staying in a stopped state.
  • Fixed a bug where the podman stats command returned an incorrect memory limit after a container update. (#18621).
  • Fixed a bug in the podman run command where the PODMAN_USERNS environment variable was not ignored when the --pod option was set, resulting in a container created in a different user namespace than its pod (#18580).
  • Fixed a bug where the podman run command would not create the /run/.containerenv when the tmpfs is mounted on /run (#18531).
  • Fixed a bug where the $HOME environment variable would be configured inconsistently between container starts if a new passwd entry had to be created for the container.
  • Fixed a bug where the podman play kube command would restart initContainers based on the restart policy of the pod. initContainers should never be restarted.
  • Fixed a bug in the remote Podman client’s build command where an invalid platform would be set.
  • Fixed a bug where the podman history command did not display tags (#17763).
  • Fixed a bug where the podman machine init command would create invalid machines when run with certain UIDs (#17893).
  • Fixed a bug in the remote Podman client’s podman manifest push command w...
Read more

v4.5.1

26 May 17:10
v4.5.1
9eef300
Compare
Choose a tag to compare

Security

  • Do not include image annotations when building spec. These annotations can have security implications - crun, for example, allows rootless containers to preserve the user's groups through an annotation.

Quadlet

  • Fixed a bug in quadlet to recognize the systemd optional prefix '-'.

Bugfixes

  • Fixed a bug where fully resolving symlink paths included the version number, breaking the path to homebrew-installed qemu files (#18111).
  • Fixed a bug where Podman was splitting the filter map slightly differently compared to Docker (#18092).
  • Fixed a bug where running make package did not work on RHEL 8 environments (#18421).
  • Fixed a bug to allow comma separated dns server IP addresses in podman network create --dns and podman network update --dns-add/--dns-drop (#18663).
  • Fixed a bug to correctly stop containers created with --restart=always in all cases (#18259).
  • Fixed a bug in podman-remote logs to correctly display errors reported by the server.
  • Fixed a bug to correctly tear down the network stack again when an error happened during the setup.
  • Fixed a bug in the remote API exec inspect call to correctly display updated information, e.g. when the exec process died (#18424).
  • Fixed a bug so that podman save on windows can now write to stdout by default (#18147).
  • Fixed a bug where podman machine rm with the qemu backend now correctly removes the machine connection after the confirmation message not before (#18330).
  • Fixed a problem where podman machine connections would try to connect to the ipv6 localhost ipv6 (::1) (#16470).

API

  • Fixed a bug in the compat container create endpoint which could result in a "duplicate mount destination" error when the volume path was not "clean", e.g. included a final slash at the end. (#18454).
  • The compat API now correctly accepts a tag in the images/create?fromSrc endpoint (#18597).