Podman: контейнеры и образы
Контейнеры без постоянного демона и, как правило, без прав root. На нём работает Distrobox, а в Atomic Booster им управляют кнопками.
Что такое Podman
Podman запускает контейнеры: изолированные окружения, в которых программа получает свою файловую систему и свои пакеты, но использует ядро хоста. Образы совместимы с Docker, а команды похожи (podman run, podman ps, podman images).
Без демона
Нет постоянно работающей службы, через которую идут все контейнеры. Контейнер запускается как обычный процесс.
Rootless
Контейнеры запускаются от имени вашего пользователя, и Booster управляет именно ими. Даже если внутри «root», на хосте это обычный пользователь.
Знакомые образы
Работает с образами OCI, в том числе с теми, что собраны для Docker, а команды очень похожи. Файл сборки называется Containerfile и во многом похож на Dockerfile.
Зачем он в ALT Atomic
- В ALT Atomic на нём работает Distrobox: контейнеры с окружением других дистрибутивов это контейнеры Podman.
- Образ системы описывается файлом Containerfile и собирается в контейнерах. Приложения тоже удобно собирать в контейнере, не ставя компилятор и зависимости на хост.
- Если нужен сервис (база данных, сайт, проверка скрипта), его проще запустить в контейнере, чем ставить в систему.
Как пользоваться в Atomic Booster
Вкладка «Podman» в Atomic Booster показывает два списка и обновляется на лету: Booster следит за событиями Podman, поэтому запущенный или остановленный контейнер появляется сразу.
Контейнеры
- В списке видно имя, образ и состояние: работает или остановлен.
- У работающего контейнера кнопки «Остановить» и «Перезапустить», у остановленного «Запустить».
- «Логи» открывают вывод контейнера в отдельном окне.
- «Удалить» убирает контейнер.
Образы
- В списке видны размер и возраст образа.
- «Скачать»: впишите имя образа в строку сверху, и он скачается из реестра.
- «Собрать…»: выберите свой
Containerfile, и Booster соберёт образ. - «Run» у образа запускает из него контейнер.
- «Клонировать (новый тег)» создаёт копию образа под новым именем.
- Кнопка корзины с подсказкой «Удалить неиспользуемые образы» выполняет
prune: удаляет образы, которые не нужны ни одному контейнеру.
Автоостановка
Забытый запущенный контейнер занимает память и процессор. В Booster можно выбрать срок, после которого контейнер останавливается сам: никогда, 1, 2, 4, 6, 12 или 24 часа. По умолчанию выбрано 6 часов.
Важная деталь: срок считается с момента запуска контейнера, а не по бездействию. Проверка идёт раз в минуту: каждый контейнер, который работает дольше выбранного времени, останавливается. Под строкой выбора показывается состояние: «Отключено», «Активно (таймаут: …)» или «Остановлено: N (превышен таймаут)».
Осторожно с Distrobox. Автоостановка не отличает обычные контейнеры от контейнеров Distrobox. Если вы подолгу работаете в одном контейнере, выберите «Никогда» или большой срок, иначе он остановится по истечении времени с запуска.
Умная очистка
Вместо слепой команды podman system prune кнопка «Умная очистка» (значок метлы, подсказка «остановленные контейнеры и старые образы») сначала показывает план, что именно можно удалить:
- Отмечены: остановленные контейнеры (кроме Distrobox и Booster) старше суток и «висячие» образы без имени.
- Не отмечены: старые неиспользуемые образы (30 дней и больше): их удалять или нет, решаете вы.
Удаляется только то, что вы подтвердили. Контейнеры Distrobox и Booster очистка не трогает.
Из терминала
podman ps -a # все контейнеры
podman images # образы
podman run -it --rm alpine sh # временный контейнер
podman logs имя # логи
podman stop имя && podman rm имя # остановить и удалить
podman build -t мой-образ -f Containerfile .
podman system prune # осторожно: удаляет неиспользуемоеЕсли Podman не запускается
- Ошибка «insufficient UIDs or GIDs available»: проверьте диапазоны в
/etc/subuidи/etc/subgidи выполнитеpodman system migrate. - Не хватает места: откройте умную очистку в Booster.
Документация
Подробный справочник с командами, ключами и разбором типичных проблем:
