Первый шаг дня — установка и базовая настройка. На большинстве дистрибутивов Linux установка выполняется одной командой (например, `sudo apt install podman` для Ubuntu/Debian или `sudo dnf install podman` для RHEL/Fedora). После установки настройте альтернативные registry для образов, если это необходимо, отредактировав файл `/etc/containers/registries.conf`. Для работы rootless-контейнеров (от имени обычного пользователя) убедитесь, что у пользователя есть выделенный UID/GID диапазон в `/etc/subuid` и `/etc/subgid`. Команда `podman info` покажет корректность конфигурации.
Основные команды Podman практически идентичны Docker, что упрощает миграцию. `podman pull` загружает образ, `podman images` выводит список локальных образов, `podman run` запускает контейнер. Попрактикуйтесь: выполните `podman pull docker.io/library/nginx:alpine` и затем `podman run -d -p 8080:80 --name my-nginx nginx:alpine`. Откройте браузер на `http://localhost:8080` — вы увидите стартовую страницу Nginx. Это подтвердит, что базовый движок работает.
Теперь перейдем к топу инструментов, которые расширяют возможности Podman.
- **Buildah** — инструмент для специализированной сборки OCI-образов. Он позволяет создавать образы из Dockerfile или с нуля, без необходимости запускать контейнер или иметь Dockerfile. Это идеально для CI/CD пайплайнов. Установите его (`sudo apt install buildah`). Создайте простой Dockerfile с базовым содержимым. Затем соберите образ: `buildah bud -t my-app:latest .`. Убедитесь, что образ появился в списке Podman: `podman images`. Buildah дает тонкий контроль над каждым слоем образа, что полезно для оптимизации размера.
- **Skopeo** — инструмент для операций с образами контейнеров без необходимости их полной загрузки. Он умеет копировать образы между registry, инспектировать их (показывать метаданные, слои) и удалять. Это мощный инструмент для администрирования и синхронизации. Установите Skopeo. Попробуйте проинспектировать удаленный образ, не скачивая его: `skopeo inspect docker://docker.io/library/redis:alpine`. Вы увидите JSON с детальной информацией. Затем скопируйте образ из Docker Hub в локальный registry: `skopeo copy docker://docker.io/library/redis:alpine containers-storage:localhost/redis:local`.
- **Podman Compose** — аналог Docker Compose для управления multi-контейнерными приложениями. Хотя Podman имеет встроенную поддержку Pods (групп контейнеров), Compose-файлы широко распространены. Установите его (`sudo apt install podman-compose` или через pip). Создайте простой `docker-compose.yml` с сервисом web (nginx) и db (postgres). Запустите стек: `podman-compose up -d`. Проверьте состояние: `podman-compose ps`. Это позволяет быстро поднимать сложные среды для разработки.
- **Podman Machine** (для macOS и Windows) — инструмент для создания и управления виртуальными машинами Linux, на которых работает Podman. Аналог Docker Desktop, но без демона. Если вы на Linux, этот шаг можно пропустить. На macOS установите через Homebrew: `brew install podman`. Затем создайте VM: `podman machine init`. Запустите ее: `podman machine start`. Теперь команды `podman` будут выполняться внутри этой VM.
- **Cockpit с Podman-модулем** — веб-интерфейс для управления контейнерами. Идеален для визуального контроля, особенно на серверах. Установите Cockpit (`sudo apt install cockpit`) и модуль для Podman (`sudo apt install cockpit-podman`). Откройте в браузере `https://:9090`, авторизуйтесь и найдите раздел Podman. Здесь вы сможете запускать, останавливать контейнеры, просматривать логи и управлять образами в интуитивном интерфейсе.
- **Systemd-интеграция** — один из самых мощных инструментов для продакшена. Podman умеет генерировать unit-файлы systemd для управления контейнерами как сервисами. Создайте контейнер: `podman run -d --name my-service -p 80:80 nginx:alpine`. Сгенерируйте unit-файл: `podman generate systemd --name my-service --files --new`. Это создаст файл `container-my-service.service`. Перенесите его в `/etc/systemd/system/`, перезагрузите демон systemd и включите автозагрузку: `sudo systemctl enable --now container-my-service.service`. Теперь ваш контейнер управляется через systemd, что обеспечивает автоматический запуск при загрузке системы, мониторинг и restart policies.
К концу дня вы не только освоите базовые команды Podman, но и получите в свой арсенал мощный набор инструментов для полного цикла работы с контейнерами: от сборки (Buildah) и перемещения (Skopeo) до оркестрации в разработке (Compose) и промышленной эксплуатации (Systemd, Cockpit). Podman в связке с этими инструментами представляет собой зрелую, безопасную и production-готовую платформу для контейнеризации.
Комментарии (6)