На семействе RHEL (AlmaLinux / Rocky) Podman обычно уже в репозиториях. Quadlet — описание контейнера в unit-файле, который systemd сам превращает в сервис. Удобно для демонов на сервере без Docker Compose.

Podman Quadlet и systemd на AlmaLinux 9

1. Установка (если ещё нет)

sudo dnf install -y podman
podman --version

Для пользовательских (rootless) сервисов нужен lingering:

loginctl enable-linger "$USER"

2. Каталог Quadlet

Для root:

mkdir -p /etc/containers/systemd

Для пользователя:

mkdir -p ~/.config/containers/systemd

3. Пример: nginx как .container

Создайте /etc/containers/systemd/web.container (или в ~/.config/... для rootless):

[Unit]
Description=Nginx via Podman Quadlet
Wants=network-online.target
After=network-online.target

[Container]
Image=docker.io/library/nginx:alpine
PublishPort=8080:80
Volume=/var/www/html:/usr/share/nginx/html:Z
AutoUpdate=registry

[Service]
Restart=always

[Install]
WantedBy=multi-user.target

Флаг :Z важен при SELinux enforcing — иначе будут Permission denied на volume.

4. Применение

# root
systemctl daemon-reload
systemctl start web.service
systemctl status web.service --no-pager

# пользователь (rootless)
systemctl --user daemon-reload
systemctl --user start web.service

Логи:

journalctl -u web.service -f
# или
podman logs web

Имя сервиса обычно совпадает с именем файла: web.containerweb.service.

5. Несколько контейнеров в одной сети

Создайте сеть:

podman network create appnet

В .container добавьте:

Network=appnet

Для compose-подобных сценариев Podman умеет podman-compose / podman kube play, но Quadlet хорошо закрывает «один сервис — один unit».

6. Автообновление образов

В примере есть AutoUpdate=registry. Включение таймера:

systemctl enable --now podman-auto-update.timer

Когда выбирать Quadlet

Задача Подход
Один-два долгоживущих сервиса Quadlet + systemd
Сложный стек с зависимостями и Traefik-labels Docker Compose
Rootless и меньше демона на хосте Podman Quadlet от пользователя

Итог: на AlmaLinux 9 контейнер становится обычным systemd-сервисом — привычный systemctl, журналы и автозапуск без отдельного compose-оркестратора.