podman — container runtime
💬 "podman Commands"
podman is a container runtime compatible with Docker commands. Rootless execution is the default, and it has no daemon.
It is compatible with the Docker CLI (aliasing docker→podman is possible). Rootless mode is the default, and it operates without a daemon.
- Concept: It is compatible with the Docker CLI (aliasing docker→podman is possible).
- Key Features: Rootless mode is the default, and it operates without a daemon.
- Advantages: Supports multi-container management on a Pod basis.
- Use Cases: Container management can be done as a systemd service.
Installation and Download
podman is installed via a package manager or an official script.
| Environment | Command |
|---|---|
| Ubuntu 24.04+ | sudo apt install podman |
| RHEL / Fedora | sudo dnf install podman |
| Arch | sudo pacman -S podman |
| macOS (brew) | brew install podman |
| Verify | podman --version |
Verify the installation with podman --version.
Frequently Used Options
| Option | Description |
|---|---|
| podman run <img> | Run a container (same as docker run) |
| podman ps | List running containers |
| podman images | List local images |
| podman pod create | Create a Pod |
| podman system migrate | Migration for rootless↔root switching |
3 Essential Command Combinations
podman run -d -p 8080:80 nginx— Run a web server containeralias docker=podman— Docker compatibility aliaspodman generate systemd --new --name myapp— Create a systemd service
💬 "Show me an example of using podman on a real server"
Here are common scenarios you encounter on a production server, organized step-by-step.
Step 1 · Verify Installation
Check if it is installed.
podman --version || sudo apt install -y podman
Step 2 · Run a Container
Run nginx in the background.
podman run -d -d -p 8080:80 --name web nginx
Step 3 · Check Status
Verify running containers.
podman ps
Actual Execution Screen
Result of running an nginx container with podman.
!podman command execution result
Server in production
How It's Used in Practice
1. Running a Container
Scenario — Run an nginx container.
podman run -d -p 8080:80 --name web nginx:latest
Result — nginx is running on port 8080.
Key Point — Uses the same syntax as Docker run.
2. Registering with systemd
Scenario — Manage a container with systemd.
podman generate systemd --new --name web > web.service
systemctl --user enable --now web.service
Result — The container starts automatically after a reboot.
Key Point — Integrates container lifecycle at the OS level.
Actual Execution Screen
Result of generating a service with podman generate systemd.
!podman command execution result 2
Server in production
Points to Note
- Rootless podman may require the sysctl net.ipv4.ip_unprivileged_port_start setting to bind to ports below 1024.
- It is not fully compatible with Docker Compose. Some services may behave differently.
- Root and rootless containers have different image storage locations. Switching requires
podman system migrate.
Source (HTML): https://games.aidebatehub.com/programs/linux/services/podman.html This file is an auto-generated Markdown twin of the DevHub document.
AI Knowledge Hub
Visitor Comments