Установка и использование Podman на Ubuntu 22.04

Что такое Podman в одном предложении: Podman — это инструмент для создания и управления контейнерами из проекта libpod, который не требует Docker daemon и часто используется как легковесная альтернатива Docker в Linux.
Что понадобится
- Сервер с установленной Ubuntu 22.04.
- Пароль root или пользователь с правами sudo.
Важно: Podman работает в большинстве современных дистрибутивов Linux и предпочитает systemd/cgroup v2. Если у вас нет cgroup v2, часть функциональности может отличаться.
Установка Podman
Пакет Podman доступен в стандартном репозитории Ubuntu. Для установки выполните:
apt install podman -yПроверить версию:
podman -vОжидаемый пример вывода:
podman version 3.4.4Подробную информацию о текущей установке можно получить так:
podman infoПример части вывода:
host:
arch: amd64
buildahVersion: 1.23.1
cgroupControllers:
- cpuset
- cpu
- io
- memory
- hugetlb
- pids
- rdma
- misc
cgroupManager: systemd
cgroupVersion: v2
conmon:
package: 'conmon: /usr/bin/conmon'
path: /usr/bin/conmon
version: 'conmon version 2.0.25, commit: unknown'
cpus: 2
distribution:
codename: jammy
distribution: ubuntu
version: "22.04"
eventLogger: journald
hostname: ubuntu2204
idMappings:
Настройка реестра образов Podman
По умолчанию конфигурация реестра может не включать некоторые внешние реестры. Отредактируйте файл конфигурации:
nano /etc/containers/registries.confДобавьте или отредактируйте секцию поиска реестров так:
[registries.search]
registries=["registry.access.redhat.com", "registry.fedoraproject.org", "docker.io"]Сохраните и закройте файл.
Важно: порядок реестров в этом списке определяет приоритет поиска при указании несвязанного имени образа.
Поиск и загрузка образов
Поиск образа Debian в реестре:
podman search debianПример вывода показывает доступные образы и их источник (INDEX).
Загрузка последнего образа Debian:
podman pull debianПример прогресса загрузки:
Getting image source signatures
Copying blob 23858da423a6 done
Copying config 43d28810c1 done
Writing manifest to image destination
Storing signatures
43d28810c1b4c28a1be3bac8e0e40fcc472b2bfcfcda952544ed99cb874d2b1aПроверить локальные образы:
podman imagesПример вывода:
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/library/debian latest 43d28810c1b4 5 days ago 129 MBСоздание и управление контейнерами
Создать контейнер из образа Debian и запустить его в фоне:
podman run -dit --name debian-container debianПосмотреть запущенные контейнеры:
podman psПример вывода:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
533698eaf6f1 docker.io/library/debian:latest bash 6 seconds ago Up 6 seconds ago debian-containerПодключиться к работающему контейнеру:
podman attach debian-containerВнутри контейнера вы увидите приглашение shell, например:
root@533698eaf6f1:/# Убедиться в внутриобразовой версии ОС:
cat /etc/os-releaseПример вывода:
PRETTY_NAME="Debian GNU/Linux 11 (bullseye)"
NAME="Debian GNU/Linux"
VERSION_ID="11"
VERSION="11 (bullseye)"
VERSION_CODENAME=bullseye
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"
Выйти из контейнера:
exitОстановить, запустить, удалить контейнер и удалить образ:
podman stop debian-container
podman start debian-container
podman rm debian-container
podman rmi debianПример удаления образа:
Untagged: docker.io/library/debian:latest
Deleted: 43d28810c1b4c28a1be3bac8e0e40fcc472b2bfcfcda952544ed99cb874d2b1aПолный список команд и подсказка:
podman --helpВывод перечисляет все доступные команды, такие как run, pull, push, build, ps, images и т.д.
Быстрый справочник команд (cheat sheet)
- Установка: apt install podman -y
- Проверка: podman -v, podman info
- Загрузка образа: podman pull
- Список образов: podman images
- Создать и запустить: podman run -dit –name
- Список контейнеров: podman ps
- Остановить: podman stop
- Запустить: podman start
- Удалить контейнер: podman rm
- Удалить образ: podman rmi
- Подключиться: podman attach
- Запуск команды внутри: podman exec -it
/bin/bash
Отличия Podman от Docker (когда это важно)
- Без демона: Podman не использует центральный daemon, контейнеры запускаются как обычные процессы пользователя или rootless.
- Совместимость: команды и образы часто совместимы, но некоторые Docker-ориентированные инструменты ожидают наличие Docker API.
- Rootless режим: Podman поддерживает запуск контейнеров без root, повышая безопасность.
Когда Podman может не подойти:
- Если вам требуется интеграция с инструментами, которые исключительно взаимодействуют с Docker Engine через его API (нужен shim).
- В окружениях, где уже принято централизованное управление Docker daemon и это часть CI/CD.
Практические советы по безопасности
- Используйте rootless режим для задач, где это возможно.
- Подписывайте и проверяйте образы при помощи подписей и политики подписи (Notary, Cosign и т.п.).
- Ограничивайте привилегии контейнера и избегайте –privileged без острой необходимости.
- Следите за уязвимостями в образах и своевременно обновляйте базовые образы.
Миграция с Docker
- Многие docker-команды работают идентично (podman run, podman pull, podman build).
- Если CI ожидает Docker API, используйте podman-docker пакет или сокет-compat слои, либо адаптируйте pipeline.
- Тестируйте образы и контейнеры на локальном стенде перед переносом в прод.
Режимы использования по ролям
- Администратор: установить, настроить реестры, обеспечивать обновления и мониторинг.
- Девопс/инженер CI: адаптировать пайплайны, проверять совместимость с инструментами сборки.
- Разработчик: запускать rootless-контейнеры локально, создавать Containerfile / Dockerfile, тестировать образы.
Критерии приёмки
- Podman устанавливается без ошибок на Ubuntu 22.04.
- Удалось скачать образ debian и запустить контейнер.
- Контейнер отвечает на базовые команды, можно подключиться и выполнить команду внутри.
Отладка и распространённые проблемы
- Ошибка с cgroups: убедитесь, что система использует cgroup v2 при необходимости (systemd и соответствующая конфигурация).
- Привилегии: в rootless режиме некоторые функции (ports <1024, mount-опции) могут быть ограничены.
- Реестр: если pull не проходит, проверьте /etc/containers/registries.conf и сетевой доступ.
Дополнительные ресурсы
Официальная документация Podman содержит подробные руководства и примеры: посетите страницу документации Podman.
Часто задаваемые вопросы
Q: Можно ли использовать Podman вместо Docker в проде?
A: Да, Podman подходит для продакшн-использования, особенно если требуется rootless или бездемоновая архитектура. Однако проверьте совместимость инструментов, использующих Docker API.
Q: Нужно ли менять Dockerfile при переходе на Podman?
A: Обычно нет: Dockerfile совместимы с Podman/Buildah. Команды сборки и запуск образов работают аналогично.
Q: Как восстановить удалённый контейнер или образ?
A: Если образ удалён локально, его можно снова загрузить из реестра с помощью podman pull. Для резервного копирования используйте podman save / podman load.
Заключение
Поздравляем — вы установили и опробовали Podman на Ubuntu 22.04. Podman — достойная альтернатива Docker, особенно для сценариев, где ценится отсутствие daemon и возможность rootless запуска. Начните с простых образов, протестируйте CI/CD и постепенно интегрируйте в рабочие процессы.
Важно: если у вас остались вопросы по конкретным кейсам (rootless, реестры, интеграция с Kubernetes), задайте их — можно привести примеры конфигураций и workflow.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента