This is the first release candidate for Podman v5.1.0. We expect the final release in 2 weeks (May 29 2024). Preliminary release notes follow.
Features
- Changes made by the
podman update
command are now persistent, and will survive container restart and be reflected inpodman inspect
. - The
podman update
command now includes a new option,--restart
, to update the restart policy of existing containers. - Quadlet
.container
files now support a new key,GroupAdd
, to add groups to the container. - Container annotations are now printed by
podman inspect
. - Image-based mounts using
podman run --mount type=image,...
now support a new option,subpath
, to mount only part of the image into the container. - A new field,
healthcheck_events
, has been added tocontainers.conf
under the[engine]
section to allow users to disable the generation ofhealth_status
events to avoid spamming logs on systems with many healthchecks. - A list of images to automatically mount as volumes can now be specified in Kubernetes YAML via the
io.podman.annotations.kube.image.automount/$CTRNAME
annotation (where$CTRNAME
is the name of the container they will be mounted into). - The
podman info
command now includes the default rootless network command (pasta
orslirp4netns
). - The
podman ps
command now shows ports from--expose
that have not been published with--publish-all
to improve Docker compatibility. - The
podman runlabel
command now expands$HOME
in the label being run to the user's home directory. - A new alias,
podman network list
, has been added to thepodman network ls
command.
Changes
- When running Kubernetes YAML with
podman kube play
that does not include animagePullPolicy
and does not set a tag for the image, the image is now always pulled (#21211). - When running Kubernetes YAML with
podman kube play
, pod-level restart policies are now passed down to individual containers within the pod (#20903). - The
--runroot
global option can now accept paths with lengths longer than 50 characters (#22272). - Updating containers with the
podman update
command now emits an event.
Bugfixes
- Fixed a bug where the
--userns=keep-id:uid=0
option topodman create
andpodman run
would generate incorrect UID mappings and cause the container to fail to start (#22078). - Fixed a bug where
podman stats
could report inaccurate percentages for very large or very small values (#22064). - Fixed a bug where bind-mount volumes defaulted to
rbind
instead ofbind
, meaning recursive mounts were allowed by default (#22107). - Fixed a bug where the
podman machine rm -f
command would fail to remove Hyper-V virtual machines if they were running. - Fixed a bug where the
podman ps --sync
command could sometimes fail to properly update the status of containers. - Fixed a bug where bind-mount volumes using the
:idmap
option would sometimes be inaccessible with rootless Podman (#22228). - Fixed a bug where bind-mount volumes using the
:U
option would have their ownership changed to the owner of the directory in the image being mounted over (#22224). - Fixed a bug where removing multiple containers, pods, or images with the
--force
option did not work when multiple arguments were given to the command and one of them did not exist (#21529). - Fixed a bug where Podman did not properly clean up old cached Machine images.
- Fixed a bug where rapidly-restarting containers with healthchecks could sometimes fail to start their healthchecks after restarting.
- Fixed a bug where nested Podman could create its
pause.pid
file in an incorrect directory (#22327). - Fixed a bug where Podman would panic if an OCI runtime was configured without associated paths in
containers.conf
(#22561). - Fixed a bug where the
podman kube down
command would not respect theStopTimeout
andStopSignal
of containers that it stopped (#22397). - Fixed a bug where Systemd-managed containers could be stuck in the Stopping state, unable to be restarted, if systemd killed the unit before
podman stop
finished stopping the container (#19629). - Fixed a bug where the remote Podman client's
podman farm build
command would not updating manifests on the registry that were already pushed (#22647). - Fixed a bug where rootless Podman could fail to re-exec itself when run with a custom
argv[0]
that is not a valid command path, as might happen when used inpodmansh
(#22672). - Fixed a bug where
podman machine
connection URIs could be incorrect after an SSH port conflict, rendering machines inaccessible. - Fixed a bug where the
podman events
command would not print an error if incorrect values were passed to its--since
and--until
options.
API
- A new Docker-compatible endpoint, Update, has been added for containers.
- The Compat Create endpoint for Containers now supports setting container annotations.
- The Libpod List endpoint for Images now includes additional information in its responses (image architecture, OS, and whether the image is a manifest list) (#22184 and #22185).
- The Build endpoint for Images no longer saves the build context as a temporary file, substantially improving performance and reducing required filesystem space on the server.
- Fixed a bug where the Build endpoint for Images would not clean up temporary files created by the build if an error occurred.
Misc
- Podman now detects unhandled system reboots and advises the user on proper mitigations.
- Improved debugging output for
podman machine
on Darwin systems when--log-level=debug
is used. - The Makefile now allows injecting extra build tags via the
EXTRA_BUILD_TAGS
environment variable.