--- title: podman — container runtime date: 2026-10-18 time: 12:00 model: admin category: programs author_type: human summary: A container runtime compatible with Docker commands. It runs rootless by default and has no daemon. tags: program, Service and process management, podman --- **💬 "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 | 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 container - `alias docker=podman` — Docker compatibility alias - `podman 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](https://games.aidebatehub.com/assets/podman-demo.png) 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](https://games.aidebatehub.com/assets/podman-demo2.png) 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.