mrkeyoor.com_
Tue 01 Sept 17:41 UTC
Dev Toolsevaluationupdated 27 Aug 2026

podman review

Podman is a command-line engine for building, running, and managing OCI containers, images, volumes, networks, and pods. It offers familiar Docker-style commands without a permanent manager daemon, supports rootless containers on Linux, and uses a managed virtual machine on macOS and Windows.

+35 / 4dstars / 7d
Verdict

Our Podman checkout installed 35 Python packages and built in 22 seconds combined, but all 47 REST tests errored during setup because bin/podman was absent. That result makes the source checkout a poor generic Python install, not a rejection of Podman as a container engine. Use Podman when rootless Linux operation, pods, Quadlet, or a daemonless CLI solves a real operating need; use a packaged release and test the exact networking, storage, and VM path you will deploy.

We ran it

Lab card: what happened when we ran podmanScreenshot of podman (podman.io)
Install✓ · 20s35 packages · 37 MB
Build✓ · 2s
Tests✗ · 7s0 passed · 0 failed · 47 errors of 47 (pytest)
Known vulns0(pip-audit)
Repo2959 files~295,597 lines of source · 14.7 MB · 16 CI workflows · tests dir

Answers from our run

Does podman build from source?

Dependencies installed in 20 seconds (35 packages), and the build succeeded in 2 seconds. We cloned commit 21326bf into a clean Debian container with 3 CPUs and no project-specific setup.

Do podman's tests pass?

Yes: 0 of 47 passed when we ran the project's own test command (pytest), with 47 collection errors. Some failures need services or credentials a bare container does not have.

Does podman have known vulnerabilities in its dependencies?

pip-audit found none in the dependency tree at the time of our run.

Who should not use podman?

Kubernetes nodes that need a CRI runtime: the README places CRI support outside Podman's scope and points to CRI-O.

What are the alternatives to podman?

Moby, nerdctl, Buildah. Our Podman checkout installed 35 Python packages and built in 22 seconds combined, but all 47 REST tests errored during setup because bin/podman was absent.

Setup2/5Build passed, but 47 API tests could not find the Podman binary
Docs5/5Install, rootless limits, API, commands, and transfers are documented
Community5/532,703 stars with same-day pushes, issues, and pull requests
Maturity5/5Signed quarterly releases and established OCI components

Discussed on

  1. hnPodman Container Tools4 points

Who it’s for

Linux developers and operators who want daemonless OCI container management.
Teams that need rootless containers, pods, Docker-compatible commands, or a REST API.
Systemd users who want to describe container workloads through Quadlet units.
macOS and Windows developers willing to run containers inside podman machine.

Who it’s NOT for

Kubernetes nodes that need a CRI runtime: the README places CRI support outside Podman's scope and points to CRI-O.
Users whose main job is specialized image copying, signing, or pushing across storage backends: the project directs that work to Skopeo.
Rootless users with home directories on NFS or GPFS: the documented rootless limitations say those filesystems do not work for container storage.
Teams expecting years of upstream maintenance for every release: the README says only the newest release normally receives support, with a limited v5.8 exception through June 2027.
Contributors expecting the Python REST suite to run after a generic source install: our run produced 47 setup errors because bin/podman was missing.

Setup reality

Our sandbox installed 35 Python packages in 20 seconds and used 37 MB, then completed its detected build in 2 seconds. Pytest failed with exit code 1 after 7 seconds: 0 passed, 0 failed, and all 47 collected cases hit setup errors because bin/podman did not exist. Pip-audit reported 0 known vulnerabilities.

Using Podman is a system-level setup, not just a Python package install. Linux needs a supported Podman package and its OCI runtime, storage, and networking components. Registry credentials are optional for public images but required for private registries. macOS and Windows use a Podman-managed virtual machine.

Rootless mode may require an administrator to configure subordinate UID and GID ranges. It cannot bind ports below 1024 by default, does not work with NFS or GPFS home storage, and has cgroup, device, filesystem, and checkpoint limits. Building from this checkout also needs the actual bin/podman artifact before its Python REST tests can start.

Podman runs OCI containers without a manager daemon

Podman manages containers, images, networks, volumes, and pods through a command line that deliberately resembles Docker's. On Linux it can run containers directly as root or as an ordinary user. There is no permanent manager daemon sitting idle between commands. A REST service is available when applications need one, with both Docker-compatible endpoints and Podman-specific APIs.

The engine delegates major jobs to other OCI projects. Netavark and Aardvark handle networking, containers/storage manages local data, Buildah supplies image-building code, and an OCI runtime such as crun or runc starts containers. That split gives operators choices, but a source checkout is not one self-sufficient binary plus nothing else. Packaging and distribution integration provide much of the system around it.

Rootless mode still needs host preparation

Rootless Podman maps container identities into user namespaces, so container root does not gain privileges the host user lacks. The README says almost all normal functionality is available, while its dedicated limitations page lists the exceptions. An administrator may need to populate /etc/subuid and /etc/subgid, and the user needs writable storage on a filesystem suitable for user namespaces.

Ports below 1024 cannot be bound by default without changing the host's unprivileged-port setting or adding redirection. NFS and GPFS home directories do not work for rootless container storage. Cgroups v1 cannot apply resource limits in this mode, device-node creation fails without the host capability, and checkpoint or restore through CRIU requires root. These are kernel and host-policy constraints that a Docker-compatible command spelling cannot hide.

What happened when we ran it

Our 3-CPU, 8 GB sandbox cloned commit 21326bf and classified the detected project as Python. Installation succeeded in 20 seconds, adding 35 packages and consuming 37 MB. The detected build completed in 2 seconds. Pip-audit found 0 known vulnerabilities in that installed Python package set.

The test step failed with exit code 1 after 7 seconds. Pytest reported 0 passed, 0 failed, and 47 collection or setup errors out of 47. The repeated error was FileNotFoundError: [Errno 2] No such file or directory: 'bin/podman' across container, network, pod, volume, and other REST API cases. The final pytest summary reported those 47 errors in 2.93 seconds.

Those tests exercise Python calls against the Podman API and require the engine binary. Our run did not produce or locate bin/podman, so no API assertion executed far enough to pass or fail. The result does not measure container startup, image pulls, networking, or the Go test suite. It proves that the generic detected install and build path did not prepare this checkout's Python REST harness.

The repository contained 2,959 files, about 295,597 lines of source, and used 14.7 MB before installation. Our scan found 16 CI workflow files, no Dockerfile, and a tests directory. Visible automation and extensive source do not repair the local missing-artifact result; contributors need the project's actual build instructions and must confirm where the expected bin/podman is created before invoking these API tests.

macOS and Windows add a Linux virtual machine

Containers run natively on Linux. On macOS and Windows, podman machine creates and manages a Linux virtual machine, and the local client talks to the engine inside it. That is a clean product boundary, but disk allocation, VM startup, host networking, filesystem sharing, and architecture differences become part of the developer experience.

Release 6.1.0, published August 12, 2026, added podman machine restart and a Windows WSL port-forwarding setting for newly created machines. It also fixed interrupted Mac machine starts leaving a VM in an inconsistent state and a Hyper-V startup race involving mounts. These are useful fixes, and they show why desktop users should evaluate the VM path separately from a Linux server installation.

Docker compatibility is broad rather than identical

Podman's CLI can run many familiar Docker commands locally or against a remote system. Its REST service exposes a compatibility interface as well as richer Libpod endpoints. Release 6.1.0 continued work on Docker API v1.44 compatibility and began preparation for v1.45. Compatibility here is active engineering work, not a claim that every field and edge case already behaves exactly like Docker.

Migration testing should cover compose tooling, socket discovery, bind mounts, networking, registry authentication, health checks, and scripts that parse command output. Podman's pod model and rootless behavior may be reasons to switch, while software hard-coded to a Docker daemon socket can add work. The transfer guide maps commands, but a command table cannot validate an application's assumptions about permissions or service lifetime.

Release 6.1.0 and August activity show current maintenance

GitHub reported 32,703 stars, 1,137 combined issues and pull requests, and a last push on August 27, 2026. Same-day work covered rootless process handling, API filters, Hyper-V, dependency updates, networking, and volume paths. The combined open number is not a bug count. It is consistent with a large engine spanning Linux kernels, storage, networks, virtual machines, APIs, and several host operating systems.

Podman publishes major or minor releases 4 times per year, with patch releases between them, and says releases are PGP signed. Only the newest version normally receives upstream support. The stated exception keeps v5.8 on CVE and critical-fix support until June 2027 after the 6.0 transition. Distribution users should separate an operating system vendor's lifecycle from upstream's narrower promise.

Podman is a strong default for Linux teams that value rootless containers and systemd-friendly Quadlet units. The lab failure says source contributors must build the real engine before running its Python REST suite. Production buyers should prefer signed packaged releases, document host preparation, and prove storage and networking on the target kernel. If CRI integration or specialized image transport is the main job, CRI-O or Skopeo is the project the README itself points toward.

Alternatives

ProjectWhat it isPick it when
Moby gh↗The open-source container engine components underlying Docker Engine.pick this instead when Docker's daemon model and ecosystem compatibility are the required baseline.
nerdctlA Docker-compatible command line for containerd with rootless support.pick this instead when containerd is already the runtime and you want a familiar local CLI.
BuildahA focused tool for constructing OCI images with or without Dockerfiles.pick this instead when image creation is the job and long-running container management is unnecessary.

What people are saying

  1. [github-trending] podman-container-tools/podman

Sources

  1. Podman repository
  2. Podman README
  3. Rootless Podman limitations
  4. Podman 6.1.0 release
  5. Multistage build permissions issue 29117

More dev tools reviews

workmux · v2rayNG · SecLists · hashcat · eslint · fastfetch · the whole board →