podman-machine — утилита для управления виртуальными машинами, используемая в экосистеме Podman для обеспечения запуска контейнеров на хостах, где прямое использование контейнерного движка может быть ограничено, в частности на macOS и Windows. Инструмент реализует механизм создания, конфигурации и управления жизненным циклом виртуальных машин, в которых развёрнут демон контейнеризации или совместимая среда, позволяющая запускать контейнеры OCI. Подобные решения применяют гипервизоры платформы (HyperKit, Hyper-V, QEMU и др.) для изоляции и предоставления виртуального Linux-окружения на системах с другим ядром.
Исторически podman-machine возник как ответ на потребность в единообразном способе запуска Podman на настольных операционных системах, где отсутствует нативная поддержка Linux-контейнеров. Утилита предоставляет команды для создания новых виртуальных машин с настраиваемыми параметрами (объём памяти, количество CPU, дисковое пространство), управления их состоянием (запуск, остановка, перезапуск) и доступа к инструментам отладки и журналирования. В случаях, когда официальной или полной документации недостаточно, описание функциональности базируется на общепринятых практиках управления виртуальными машинами для контейнерных рабочих нагрузок.
- Создание виртуальных машин — инициация и конфигурация новых VM с параметрами CPU, памяти и дискового пространства для запуска контейнерной среды.
- Запуск и остановка — управление состоянием виртуальных машин: старт, остановка, перезапуск и удаление экземпляров.
- Настройка сети — конфигурация сетевых интерфейсов и проброса портов между хостом и виртуальной машиной для доступа к контейнерным сервисам.
- Управление образами и контейнерами — обеспечение возможности использования существующих инструментов Podman внутри VM для загрузки образов и запуска контейнеров.
- Доступ к логам и отладке — предоставление механизмов просмотра системных и контейнерных логов, а также выполнения команд внутри виртуальной машины.
- Интеграция с гипервизорами — работа с различными механизмами виртуализации, доступными на целевых платформах (например, HyperKit, Hyper-V, QEMU), через унифицированный интерфейс управления.
- Экспорт и импорт конфигураций — возможности сохранения и восстановления настроек виртуальных машин для воспроизводимости окружений.
- Безопасность и изоляция — обеспечение изоляции контейнерной среды от хоста путем использования виртуальных машин, что уменьшает зависимости от хостовой системы.