What Is New in Podman 3.4
Podman 3.4 delivers significant enhancements across container management, networking, and the Podman Desktop experience. This release focuses on improving the developer workflow and providing more robust tools for production environments.
| Category | Key Changes |
|---|---|
| New Features | Podman Desktop, Init Containers, New `podman generate` and `podman play` commands |
| Networking | DNS resolution for rootless containers, Netavark networking backend |
| Improvements | Enhanced `podman image scp`, Better Quadlet support, Improved Docker Compose integration |
| Bug Fixes | Numerous fixes for pods, volumes, and container lifecycle management |
What's the big deal with Podman Desktop?
Podman Desktop is a major new GUI tool for managing containers and pods on Linux, Windows, and macOS. It provides a visual interface for the core Podman commands you already use in the CLI. This is a game-changer for developers who prefer a graphical workflow or are transitioning from Docker Desktop.
You can start/stop containers, manage images, and view logs without dropping to the terminal. In practice, this lowers the barrier to entry for new users while giving experienced engineers another way to interact with their containers.
How do Init Containers work in Podman now?
Podman 3.4 adds native support for Init Containers, which run before the main app containers in a pod start. This is crucial for setting up databases, running migrations, or waiting for external services to become available.
You define them directly in a Kubernetes YAML file. When you use podman play kube, Podman will automatically run these init containers in sequence before starting your primary application containers. This brings Podman's pod behavior even closer to a standard Kubernetes deployment.
What networking improvements should I know about?
The most impactful networking change is that rootless containers now have full DNS resolution by default. Before this, you had to manually manage /etc/hosts inside containers, which was a major pain point for development.
This release also introduces the new Netavark network stack as a technology preview. It's designed to eventually replace the current CNI stack, offering better performance and more features for rootless containers and pods.
Can I copy images between systems more easily?
Yes, the podman image scp command has been significantly enhanced. You can now copy images between different user accounts on the same machine or between remote systems using a single command.
The new --quiet flag reduces output for scripting, and the command now properly handles image manifests. This makes it much simpler to move images around in environments where you don't have a registry available.
What's new with Docker Compose and Podman?
Podman's Docker Compose integration continues to mature. Version 3.4 improves compatibility with more compose files and fixes issues with volume mounting and service ordering.
You can now use podman-compose with a wider range of existing projects without modification. This matters because it reduces the friction for teams transitioning from Docker to Podman while maintaining their existing development workflows.
FAQ
How stable is the new Netavark network backend?
It's currently a technology preview and not recommended for production use. Stick with the default CNI networking for critical workloads until Netavark matures further.
Does Podman Desktop replace the command line interface?
No, it complements it. The GUI uses the same Podman API as the CLI, so you can switch between them seamlessly. All operations in the desktop app can still be done via terminal commands.
Can I use Init Containers with existing pods?
Init containers are defined in Kubernetes YAML files and work with podman play kube. They're not available through the standard podman pod create command interface.
Is the improved image SCP compatible with older Podman versions?
The enhanced SCP functionality requires Podman 3.4 on both the source and destination systems. Attempting to copy to older versions may not work correctly.
What happened to the podman generate command?
It got more powerful. You can now generate systemd unit files for pods with podman generate systemd --new, which creates units that can recreate pods from scratch instead of just starting existing containers.