Podman – контейнерный движок для Linux, предназначенный для сборки, запуска и управления контейнерами без необходимости в постоянно работающем демоне. Он использует стандартные механизмы ядра Linux, такие как namespaces, cgroups, seccomp, и совместим с OCI-стандартами. Благодаря этому образы и контейнеры Podman полностью совместимы с экосистемой Docker.
Поддержка rootless-режима делает Podman более безопасным. Это достигается тем, что контейнеры запускаются от обычной учётной записи без предоставления полномочий суперпользователя.
Архитектурное отличие Podman в том, что там каждый контейнер – это обычный процесс в системе, а не часть централизованного сервиса. Такой подход упрощает отладку и снижает потенциальную поверхность атаки. Podman тесно интегрируется с systemd, позволяя генерировать юнит-файлы для контейнеров и запускать их как системные или пользовательские сервисы. Кроме того, Podman поддерживает команды, во многом повторяющие аналогичные в Docker.
Podman широко используется в серверных окружениях. Особенно часто его применяют в дистрибутивах семейства RHEL, Fedora и Debian, где ценятся безопасность, прозрачность и соответствие стандартам. Podman сочетается со многими инструментами сборки образов и оркестрации. По большей части Podman используется как более безопасная альтернатива Docker в средах с повышенными требованиями к изоляции и управляемости.
В статье разберём, как установить Podman на VPS под управлением Ubuntu и Debian.
Как установить Podman на Ubuntu и Debian
Основным способом установки Podman на Ubuntu и Debian является инсталляция из официального репозитория системы.
Для этого, во-первых, запустите обновление индекса пакетов:
$ sudo apt update
После чего выполните установку непосредственно Podman:
$ sudo apt install podman
Чтобы убедиться в успешном завершении установки, запустите команду, которая выводит версию Podman:
$ podman --version
Пример ожидаемого вывода – на скриншоте ниже.

Также проверить работоспособность Podman можно при помощи следующей команды:
$ podman info
Команда выводит подробную информацию о системе, хранилищах, cgroup, runtime и т.п. Вывод команды довольно объёмный – на скриншоте ниже лишь его небольшая часть.

Дополнительно, можно запустить тестовый контейнер из тестового образа hello-world:
$ podman run --rm hello-world
Если образ отсутствует локально, он должен автоматически скачаться из реестра. Затем Podman создаёт контейнер и запускает внутри него процесс. В результате на экран выводится диагностическое сообщение об успешной работе контейнерного окружения. После завершения выполнения команды контейнер удаляется благодаря параметру --rm. Данная команда является удобным способом убедиться в том, что Podman установлен и функционирует корректно: хранилище, namespaces, cgroups и сетевое взаимодействие работают без ошибок.

После выполнения теста загруженный образ остаётся в системе. Проверить это можно при помощи команды:
$ podman images

Также полезно убедиться в том, что Podman корректно использует пользовательские namespaces, cgroups и права доступа, а контейнеры запускаются от обычного пользователя без sudo. Данную диагностическую информацию можно посмотреть командой podman info, где с помощью параметра --format вывести только одно конкретное значение – признак работы Podman в rootless-режиме:
$ podman info --format '{{.Host.Security.Rootless}}'
Вывод значения true подтверждает правильную установку и базовую работоспособность Podman именно в рекомендуемом и более безопасном режиме. В то же время, значение false указывает на то, что Podman запущен с правами root или rootless-окружение не настроено.

