
Podman Python
https://github.com/containers/podman-py- Category
- Developer Tools
- Rank
- No. 795Tools index
Previous survey · No. 776 ·
- Pricing
- Open Source
- Type
- TOOL
- Builder
- containers
- GitHub
- 381 stars
- Latest release
- v5.8.0
- Date
About
Python bindings for the Podman container engine's REST API.
What it does
It lets Python programs control a running Podman service through resource-oriented objects. Programs can inspect and manage containers, images, pods, networks, volumes, manifests, secrets, system data, events, Quadlets and related operations over local sockets or remote connections.
Why it's ranked here
The package offers broad Podman coverage behind a familiar Python object model, with connection pooling, structured API errors and both local and SSH transports. Its packaging marks it production stable, while the README still calls it under development. That tension, plus explicit compatibility gaps, makes it capable but worth testing against your exact workflow.
What's good
Resource managers keep common container tasks readable instead of exposing only raw HTTP requests. The client supports automatic API version selection, environment-based connection settings, configurable timeouts and connection pools. It also ships dedicated Unix socket and SSH tunnel adapters, extensive test dependencies and automated checks across several supported Python releases.
Tradeoffs
Some compatibility surfaces are placeholders. TLS configuration is ignored, and swarm operations explicitly raise an unsupported-operation error. Remote connections always use the system SSH client, while the tunnel command disables strict host key checking. The README also says TCP is not implemented, although the client code accepts and normalizes TCP addresses, creating documentation ambiguity.
How to use it well
Use it for Python automation that manages containers and neighboring Podman resources through an already running service. It fits scripts, operational tooling and applications that benefit from persistent sessions and resource objects. Validate transport and compatibility behavior in your environment. It does not provide the Podman service itself or cover swarm orchestration.
Technical notes+
podman/client.py exposes PodmanClient, cached resource managers, environment-derived connections and Docker-oriented aliases. podman/api/client.py subclasses requests.Session, normalizes Unix, SSH and TCP schemes, mounts custom adapters and wraps responses with Podman-specific errors. podman/api/uds.py implements Unix-domain-socket transport, while podman/api/ssh.py creates OpenSSH tunnels and pooled HTTP connections. podman/tlsconfig.py documents TLSConfig as ignored. pyproject.toml defines setuptools packaging, Python requirements, dependencies, optional extras, pytest discovery, Ruff and mypy settings. Makefile separates unit and integration tests and enforces an 80 percent coverage threshold.
Observed
- License
- Apache-2.0
- Primary language
- Python 3 only
- Python support
- Requires Python 3.9 or newer; classifiers list Python 3.9 through 3.13
- Packaging and install
- Published as the podman Python package, installed with pip; built with setuptools
- Interface
- Python library client for a Podman service API
- Transports
- Supports Unix domain sockets, SSH-tunneled sockets and normalized TCP or HTTP addresses
- Test structure
- Repository configuration includes unit and integration test suites under the package test tree
Read from README.md, Makefile, setup.py, setup.cfg, pyproject.toml, podman/client.py, podman/version.py, podman/__init__.py, podman/tlsconfig.py, podman/api/ssh.py, podman/api/uds.py, docs/source/conf.py, podman/api/client.py, podman/domain/ipam.py, podman/domain/pods.py.
What it can do
Create and start containers
Container image name and configuration parameters → Running container instance
List containers
Filter criteria (optional) → List of container objects with metadata
Stop and remove containers
Container ID or name → Confirmation of container termination
Pull container images
Image repository URL and tag → Downloaded container image
Build container images
Dockerfile and build context → New container image
Inspect container details
Container ID or name → Container configuration and runtime information
Execute commands in containers
Container ID and command string → Command execution results
Manage container volumes
Volume configuration and mount points → Persistent storage volumes
Tags
Tech Stack
Comments (0)
No comments yet
Editorially curated, with community endorsements as a secondary signal. Corrections welcome.