hostprofi.ru
Подобрать хостинг
Термин·буква P

Podman

краткое определение

Podman — инструмент для работы с контейнерами без постоянного daemon-процесса. Совместим с Docker CLI по командам, поддерживает rootless-режим и нативно работает с pod-группами контейнеров.

Podman (Pod Manager) — утилита для управления контейнерами и podами, разработанная Red Hat. В отличие от Docker, не требует фонового daemon-процесса — каждый контейнер запускается как дочерний процесс пользователя.

Как работает

Podman использует библиотеку containerd-совместимый OCI runtime (обычно crun или runc) напрямую. Команды практически идентичны Docker: podman run, podman build, podman push. Для полной совместимости можно добавить алиас alias docker=podman.

Rootless-режим запускает контейнеры без прав root, используя Linux user namespaces. Это снижает риск эскалации привилегий: взлом контейнера не даёт права root на хосте.

Podman нативно поддерживает концепцию pod (группа контейнеров с общей сетью и IPC), аналогичную Kubernetes pod. Можно экспортировать pod в Kubernetes YAML через podman generate kube.

История

Podman появился в 2018 году как часть проекта libpod от Red Hat. Цель — создать инструмент без архитектурных проблем Docker daemon (единая точка отказа, root-доступ). В 2022 году вышел Podman Desktop — GUI-приложение для macOS и Windows, составив прямую конкуренцию Docker Desktop.

Виды запуска

  • Rootless — контейнеры от имени обычного пользователя, без root.
  • Rootful — от root, для задач, требующих прав суперпользователя.
  • Podman pod — группа контейнеров с общим network namespace.
  • Podman Compose — замена Docker Compose, читает те же YAML-файлы.

Связь с хостингом

На серверах с RHEL, CentOS Stream и Fedora Podman устанавливается из стандартного репозитория без Docker. На VDS-хостинге с RHEL-подобными дистрибутивами Podman — рекомендованная альтернатива Docker для production-контейнеров благодаря rootless-режиму.

Ключевые отличия от похожих терминов

Docker использует daemon dockerd от root; Podman работает без daemon. Nerdctl — аналогичная Docker-совместимая утилита для containerd. Docker и Podman совместимы на уровне образов (OCI standard) и реестров.

Podman vs Docker

Podman — daemonless контейнерный движок: каждый контейнер запускается напрямую, без фонового демона. Rootless контейнеры по умолчанию — безопаснее. API совместим с Docker (docker-compose работает через podman-compose). Podman Desktop — GUI-альтернатива Docker Desktop.

Управление Pod'ами

Podman поддерживает концепцию Pod (как в Kubernetes): группа контейнеров с общим сетевым пространством имён. podman pod create. Генерация Kubernetes YAML из запущенных контейнеров: podman generate kube mycontainer. Миграция с Docker: alias docker=podman.

Применение в хостинге

На серверах без Docker (RHEL 8+, Fedora): Podman является частью дистрибутива. Rootless Podman — запуск контейнеров от непривилегированного пользователя без рисков эскалации. systemd-интеграция: podman generate systemd создаёт unit для автозапуска контейнера.

Podman Compose

podman-compose — реализация docker-compose API для Podman. dnf install podman-compose или pip3 install podman-compose. Совместимость с docker-compose.yml: 90%+. Отличие: нет автоматического создания сети — нужно явно указать или использовать --pod. Rootless podman-compose — запуск как обычный пользователь.

Другие термины