> ## Documentation Index
> Fetch the complete documentation index at: https://help.freakhosting.com/llms.txt
> Use this file to discover all available pages before exploring further.

# How to Install Podman on AlmaLinux, Rocky Linux and Ubuntu

> Install Podman on AlmaLinux or Rocky Linux with sudo dnf install podman, run rootless containers, start them at boot with Quadlet and use podman compose.

To install Podman on AlmaLinux or Rocky Linux 9 or 10, run `sudo dnf install podman` (or `sudo dnf install container-tools` for Podman, Buildah and Skopeo together). On Ubuntu and Debian, run `sudo apt install podman`. Podman needs no background service: run `podman run` as a normal user for rootless containers, and use Quadlet files to start them at boot with systemd.

| Difficulty | Time | Works on | Needs |
| - | - | - | - |
| Beginner | 10 minutes | AlmaLinux / Rocky Linux 9 / 10, CentOS Stream 9, Fedora, Ubuntu 22.04 / 24.04, Debian 12 / 13 | Root or sudo access |

## Before you start

* **Podman** runs containers like Docker and uses the same images and mostly the same commands (`podman run`, `podman ps`, `podman logs`). It has no central daemon, and each user can run their own containers without root.
* Red Hat removed Docker from RHEL 8 and later and ships Podman instead, so Podman is the native choice on AlmaLinux and Rocky Linux.
* Don't install Podman and Docker on the same server unless you have a reason. They don't share images or containers.
* Root users can leave out `sudo`.

## How to install Podman

> [tab] AlmaLinux / Rocky
>
> ```bash theme={null}
> sudo dnf install podman
> ```
>
> For the full Red Hat container toolset (Podman, Buildah, Skopeo and related tools):
>
> ```bash theme={null}
> sudo dnf install container-tools
> ```

> [tab] Ubuntu / Debian
>
> ```bash theme={null}
> sudo apt update
> sudo apt install podman
> ```

> [tab] Fedora / CentOS Stream
>
> ```bash theme={null}
> sudo dnf install podman
> ```

Check the version:

```bash theme={null}
podman --version
```

```text theme={null}
podman version 4.9.3
```

That is the version in Ubuntu 24.04; AlmaLinux, Rocky Linux and Fedora ship newer releases.

## How to run your first container

As your normal user (for example `alex`), without `sudo`:

```bash theme={null}
podman run -d --name uptime-kuma -p 3001:3001 -v uptime-kuma:/app/data docker.io/louislam/uptime-kuma:2
podman ps
```

Write images with their full registry name, such as `docker.io/louislam/uptime-kuma:2`. Podman can search several registries for short names, and the full name avoids a prompt or the wrong image.

| Mode | How you run it | Where data lives |
| - | - | - |
| Rootless | `podman` as a normal user | `~/.local/share/containers/storage` |
| Rootful | `sudo podman` | `/var/lib/containers/storage` |

Rootless containers are safer: if something escapes the container, it only has your user's rights. They can't publish ports below 1024 by default, so run web apps on high ports behind a reverse proxy, or run the proxy rootful.

On AlmaLinux and Rocky Linux, open the port in firewalld:

```bash theme={null}
sudo firewall-cmd --permanent --add-port=3001/tcp
sudo firewall-cmd --reload
```

See [set up a firewall with firewalld](https://help.freakhosting.com/portals/other/how-to-set-up-a-firewall-with-firewalld.md).

## How to start a container at boot with Quadlet

Podman has no daemon to restart containers, so systemd does it. **Quadlet** (Podman 4.4 and later) turns a short `.container` file into a systemd service.

**1. Remove the test container**

```bash theme={null}
podman rm -f uptime-kuma
```

The volume and its data stay.

**2. Create the Quadlet file**

For a rootless container, create `~/.config/containers/systemd/uptime-kuma.container`:

```bash theme={null}
mkdir -p ~/.config/containers/systemd
nano ~/.config/containers/systemd/uptime-kuma.container
```

```ini theme={null}
[Unit]
Description=Uptime Kuma

[Container]
Image=docker.io/louislam/uptime-kuma:2
ContainerName=uptime-kuma
PublishPort=3001:3001
Volume=uptime-kuma:/app/data
AutoUpdate=registry

[Service]
Restart=always

[Install]
WantedBy=default.target
```

For a rootful container, put the file in `/etc/containers/systemd/` instead.

**3. Load and start the service**

```bash theme={null}
systemctl --user daemon-reload
systemctl --user start uptime-kuma.service
```

For rootful files, use `sudo systemctl daemon-reload` and `sudo systemctl start uptime-kuma.service`. You don't run `enable`: the `[Install]` section does that.

**4. Keep it running after you log out**

```bash theme={null}
sudo loginctl enable-linger alex
```

Without lingering, a user's services stop when they log out and don't start at boot.

## How to check it worked

```bash theme={null}
systemctl --user status uptime-kuma.service
podman ps
```

The service shows `active (running)` and `podman ps` lists `uptime-kuma` with `0.0.0.0:3001->3001/tcp`. If `systemctl` says `Unit uptime-kuma.service not found`, check the file for mistakes with:

```bash theme={null}
/usr/lib/systemd/system-generators/podman-system-generator --user --dryrun
```

## How to update containers automatically

`AutoUpdate=registry` marks the container for updates. Preview, then apply:

```bash theme={null}
podman auto-update --dry-run
podman auto-update
```

Podman also ships `podman-auto-update.timer`, which runs daily at midnight. Turn it on with `systemctl --user enable --now podman-auto-update.timer` (or `sudo systemctl enable --now podman-auto-update.timer` for rootful containers).

## Can Podman run docker compose files?

Yes. `podman compose` passes your `compose.yaml` to a compose provider, either `docker-compose` or `podman-compose`. Install `podman-compose`:

> [tab] AlmaLinux / Rocky
>
> ```bash theme={null}
> sudo dnf install epel-release
> sudo dnf install podman-compose
> ```
>
> `podman-compose` comes from the EPEL repository.

> [tab] Ubuntu / Debian
>
> ```bash theme={null}
> sudo apt install podman-compose
> ```

Then run `podman compose up -d` in the project folder. For long-running services, Quadlet files are more reliable at boot than Compose under Podman.

## Frequently asked questions

### Can I type docker instead of podman?

Install the `podman-docker` package. It adds a `docker` command that runs Podman, so scripts and habits keep working.

### Should I use Podman or Docker?

Use Podman on AlmaLinux or Rocky Linux if you want rootless containers and systemd integration without a daemon. Use [Docker](https://help.freakhosting.com/portals/other/how-to-install-docker.md) if an app's instructions assume Docker, such as [Coolify](https://help.freakhosting.com/portals/other/how-to-install-coolify.md) or [Dokploy](https://help.freakhosting.com/portals/other/how-to-install-dokploy.md), which talk to the Docker socket.

### Why does podman pull ask me to choose a registry?

You used a short name such as `nginx`. Use the full name, for example `docker.io/library/nginx`, to skip the question.

### Where are rootless volumes stored?

Under `~/.local/share/containers/storage/volumes/` for that user. Run `podman volume inspect uptime-kuma` to see the exact path.

## Related guides

> [card] [VPS and dedicated server guides](https://help.freakhosting.com/portals/other/vps-and-dedicated-server-guides.md)
>
> Every guide in this section.

> [card] [Install Docker](https://help.freakhosting.com/portals/other/how-to-install-docker.md)
>
> The Docker Engine alternative.

> [card] [Secure Docker on a VPS](https://help.freakhosting.com/portals/other/how-to-secure-docker-on-a-vps.md)
>
> Container security on any engine.

> [card] [Use SELinux on AlmaLinux and Rocky](https://help.freakhosting.com/portals/other/how-to-use-selinux-on-almalinux-and-rocky.md)
>
> Volume labels and container policy.

> [card] [Manage services with systemctl](https://help.freakhosting.com/portals/other/how-to-manage-services-with-systemctl.md)
>
> Control the services Quadlet creates.

***

> [!NOTE]
>
> **Checked against the official [Podman installation guide](https://podman.io/docs/installation), [Quadlet documentation](https://docs.podman.io/en/latest/markdown/podman-systemd.unit.5.html), [podman auto-update](https://docs.podman.io/en/latest/markdown/podman-auto-update.1.html) and Red Hat's [Building, running, and managing containers](https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/10/html/building_running_and_managing_containers/index) guide** on 4 November 2026; installation, rootful and rootless `podman run`, and the Quadlet file (generator dry run) tested on Ubuntu 24.04 LTS with Podman 4.9.3. Commands can differ on other distributions or releases.

> [!NOTE]
>
> ### Need Extra Help?
>
> If you encounter any issues, our support team is ready to assist:
>
> * **Live Chat:** Quick assistance via our website.
> * **Support Ticket:** [Open a Ticket](https://freakhosting.com/clientarea/submitticket.php)
> * **Discord:** [Join our Community](https://discord.gg/freakhosting)
> * **Email:** [support@freakhosting.com](mailto:support@freakhosting.com)

> [!TIP]
>
> ### Save on Your Hosting
>
> Ready to upgrade your hosting? Use code **KB20** at checkout for **20% off** your first order!

***

**Last Updated:** November 2026


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.