4.1.1

Latest release in branch 4.1
Released 3 years ago (June 25, 2022)

Software Podman
Branch 4.1
First official release version 4.1.0
First official release date 3 years ago (June 15, 2022)
Release notes https://github.com/containers/podman/releases/tag/v4.1.0
Source code https://github.com/containers/podman
Documentation https://podman.io/docs/
Download https://podman.io/docs/installation
Podman 4.1 Releases View full list

What Is New in Podman 4.1

Podman 4.1 delivers a significant update focused on enhancing the developer experience, improving container networking, and expanding system service integration. This release introduces new commands for image management, refines the REST API, and adds crucial support for Quadlet systemd units.

Category Key Changes
New Features Quadlet support, new podman image scp command, podman kube play enhancements
Networking DNS resolution for rootless containers, MACVLAN support for rootless, new pasta mode
API & Services New compatible endpoints, improved systemd integration, service logging enhancements
Improvements Image management, volume plugin support, SELinux and exit code handling
Bug Fixes Numerous fixes across containers, pods, images, and networking

What are the major new features in Podman 4.1?

The headline feature is native support for Quadlet, which simplifies running containers under systemd. This lets you define containers, pods, and volumes directly in systemd unit files, making it far easier to manage containerized services on a host.

A new podman image scp command allows you to securely copy images between systems without needing a registry. This is a game-changer for air-gapped environments or quick transfers between development machines.

For Kubernetes workflows, podman kube play now supports persistent volumes and custom MAC address assignments, closing gaps when using Podman to emulate k8s YAML files locally.

How does Podman 4.1 improve rootless networking?

Rootless containers finally get full DNS resolver support, which means name resolution now works seamlessly without manual workarounds. This removes a major pain point for developers running containers without root privileges.

You can now use MACVLAN networks in rootless mode, giving your containers direct layer 2 connectivity to the physical network. This is huge for testing network configurations in a realistic setup without needing root access.

The new pasta mode for the --network option provides a high-performance alternative for port forwarding in rootless environments, offering better performance than the default slirp4netns in many cases.

What API and service integrations were added?

The Podman API (v4.1.0) introduces new endpoints for compatibility and functionality, including /libpod/containers/change and support for the HEAD method on several endpoints. This improves interoperability with tools that expect a Docker-like API.

Systemd integration gets a major boost with the new podman generate systemd --new command, which creates more robust unit files that handle container recreation properly. The podman system service command also now supports a graceful shutdown mode with the --time option.

For logging, journald support is enhanced with the --log-driver=passthrough option, which sends container logs directly to the journal, making them easier to manage with standard system logging tools.

What improvements were made to image and volume management?

The podman image list command now shows image names by default, making it much easier to identify images at a glance without needing extra flags. Image loading and saving operations also see performance improvements.

Volume plugin support is now enabled by default, allowing you to use third-party volume drivers out of the box. This expands storage options beyond the built-in drivers.

SELinux handling is more robust with automatic relabeling on volume mounts, and exit code handling is improved with a new --exit-code option for the podman wait command, giving you more precise control over scripted workflows.

FAQ

How do I use Quadlet to run a container with systemd?
Create a systemd unit file with a .container extension (e.g., /etc/containers/systemd/myapp.container). Define your container using INI-style directives like Image= and Exec=, then run systemctl daemon-reload and systemctl start myapp. Podman and systemd handle the rest.

Can I copy images between machines without a registry now?
Yes, use the new podman image scp command. For example: podman image scp myimage:latest user@remotehost:. It handles the transfer over SSH, which is perfect for secure or offline environments.

Why would I use the new 'pasta' networking mode?
Use --network=pasta for rootless containers when you need better network performance than the default slirp4netns provides. It's particularly useful for high-throughput applications or when you need lower latency.

What's the benefit of the new exit code handling?
The new podman wait --exit-code option lets your scripts wait for a container to stop and then directly receive its exit code. This simplifies automation by eliminating the need to parse command output to determine success or failure.

Does DNS work in rootless containers now without any setup?
Yes, that's one of the biggest quality-of-life improvements. Rootless containers now use the host's resolver configuration by default, so ping google.com or curling URLs by hostname should just work inside the container.

Releases In Branch 4.1

Version Release date
4.1.1 3 years ago
(June 25, 2022)
4.1.0 3 years ago
(June 15, 2022)
4.1.0-rc1 3 years ago
(June 10, 2022)