Расскажи про свой опыт работы с Podman

«Расскажи про свой опыт работы с Podman» — вопрос из категории Docker, который задают на 24% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Мой опыт с Podman связан с его использованием как безопасной и эффективной альтернативы Docker, особенно в средах, где запуск демона от root нежелателен. Я применял его в нескольких ключевых сценариях:

  • Локальная разработка и тестирование: Сборка образов через podman build с использованием стандартных Dockerfile, запуск и управление контейнерами через CLI-команды, аналогичные Docker (podman run, podman ps, podman exec).
  • Rootless-контейнеры: Настройка и запуск контейнеров от обычного пользователя без привилегий, что значительно повышает безопасность.
  • Интеграция с systemd: Генерация unit-файлов через podman generate systemd для управления контейнерами как системными сервисами, что удобно для развертывания на виртуальных машинах.
  • Оркестрация: Использование podman-compose для описания мультиконтейнерных приложений в development-среде.
  • CI/CD пайплайны: Интеграция Podman в сценарии сборки в GitLab CI для создания образов непосредственно на раннерах.

Пример работы:

# Сборка образа
podman build -t my-app:latest .

# Запуск контейнера в фоне с пробросом порта
podman run -d --name my-app -p 8080:80 my-app:latest

# Генерация systemd-юнита для управления
podman generate systemd --new --name my-app > /etc/systemd/system/my-app.service
systemctl daemon-reload

Ключевые преимущества в моей практике: безопасность rootless-режима, полная совместимость с OCI-образами и Docker CLI, а также прямая работа с cgroups v2. Для production-оркестрации образы, собранные через Podman/Buildah, обычно отправлялись в registry и затем развертывались в Kubernetes.