What is new in Podman 5.8
Podman 5.8 brings useful improvements focused on Quadlet management, better performance when working with artifacts on virtual machines, easier container updates, and important database migration steps. This release prepares users for the upcoming removal of the old BoltDB storage in Podman 6.0 by adding automatic migration to SQLite. Several bug fixes also improve reliability across kube play, healthchecks, and remote client usage.
As an experienced architect who has worked with Podman in production environments for many years, I find these changes particularly helpful for teams running containerized workloads on Linux hosts and virtual machines.
Key Features and Improvements in Podman 5.8
| Area | Description |
|---|---|
| Quadlet Support | The podman quadlet install command can now handle files containing multiple Quadlet definitions. Separate each unit with a line containing --- and start each section with # FileName=<name> to specify the filename. |
| Quadlet Configuration | New AppArmor key available in .container files to set a custom AppArmor profile for the container. |
| Artifact Operations | When adding artifacts to a Podman machine VM using podman artifact add, if the source path is already shared into the VM, Podman loads data directly from the VM filesystem. This avoids streaming over the REST API and improves speed significantly. |
| Container Updates | New --ulimit option for the podman update command lets you change ulimit settings on running containers. |
| Exec Performance | The podman exec command now supports --no-session to skip session tracking, which reduces overhead and improves startup time for short-lived exec sessions. |
| Secret Creation | You can now type secrets directly into the terminal when using podman secret create - without needing to pipe input. |
Database Migration to SQLite
Podman 5.8 automatically tries to migrate your existing BoltDB database to the new SQLite backend when the system reboots. This change is important because BoltDB support will be completely removed in Podman 6.0.
If automatic migration does not complete successfully, you can run the manual command:
podman system migrate --migrate-db
This migration ensures continued compatibility and better long-term database performance. Most users will not need to take any action as the process happens transparently.
Bug Fixes in Podman 5.8
Podman 5.8 includes many fixes that make daily operations more reliable:
- Healthchecks now respect the
initialDelaySecondssetting correctly when usingpodman play kube. - Fixed issues with systemd rate limits that sometimes prevented healthchecks from running.
podman exportnow emits the correct Export event instead of a Mount event.- Improved handling of environment variable precedence between
envFromandenvfields in Kubernetes YAML duringpodman kube play. - Prevented panic when
podman kube playencounters Pod YAML without an image field. - Volume mount paths now display correctly when using plugin drivers.
- Containers started with
--rootfsno longer incorrectly report a healthcheck in starting state if none is defined. - The
--pull=neweroption now works as expected withpodman build. - Better handling of bind-mount paths containing spaces in Quadlet
RequiresMountsForfield. - Remote client now properly accepts empty string for
--detach-keysinpodman run. - Fixed secret handling with environment variables when building images from remote clients.
- Artifact push and pull commands now respect credentials from the
--authfileoption. - Improved Windows path handling with the HyperV machine provider.
- Added proper validation for
--pod-id-fileto prevent incorrect user namespace setups.
API Enhancements and Fixes
The REST API received new endpoints to work with Quadlets:
GET /libpod/quadlets/{name}/file-- returns the content of a Quadlet fileGET /libpod/quadlets/{name}/exists-- checks if a Quadlet existsPOST /libpod/quadlets-- installs one or more QuadletsDELETE /libpod/quadlets-- removes multiple QuadletsDELETE /libpod/quadlets/{name}-- removes a single Quadlet
Additional fixes include better timestamp precision in container logs and correct handling of healthcheck commands that contain spaces in the compatibility API.
Dependency Updates
| Component | Updated Version |
|---|---|
| Buildah | v1.43.0 |
| containers/storage | v1.62.0 |
| containers/image | v5.39.1 |
| containers/common | v0.67.0 |
Frequently Asked Questions about Podman 5.8
How do I benefit from the database migration in Podman 5.8?
The automatic migration to SQLite happens on reboot and prepares your setup for Podman 6.0. It improves database reliability and performance for most users without requiring manual steps.
What is the new --no-session option useful for?
Use --no-session with podman exec when you run many short commands and want to reduce overhead from session tracking.
Can I still use multiple Quadlet files in one installation?
Yes. Podman 5.8 makes it easy to install multiple units from a single file using the --- separator and # FileName= comments.
Will existing containers continue to work after upgrading to Podman 5.8?
Yes. All changes are backward compatible. The only required action for most users is allowing the automatic database migration to complete.
Summary of Podman 5.8 Release
Overall, Podman 5.8 focuses on making Quadlet usage more flexible, improving performance for machine-based workflows, and ensuring a smooth transition away from the legacy database. These updates, combined with numerous stability fixes, make this a recommended upgrade for anyone managing containers with Podman.
Teams using Kubernetes YAML, Quadlet for systemd integration, or Podman machine will notice the biggest benefits from this version.