🔍 Podman: Альтернатива Docker без deamon



Хотя Docker, безусловно, перевернул наше представление о разработке, развертывании и запуске приложений, стоит изучить, чем отличается Podman (Pod Manager) и почему вам может быть интересно начать использовать его вместо Docker.



Podman — это менеджер контейнеров и падов с открытым исходным кодом.



Аналогично Docker, он позволяет создавать, запускать, останавливать и удалять контейнеры OCI, а также управлять образами контейнеров.



Он также поддерживает пады в рамках своего функционала, а значит, вы можете создавать и управлять падами так же, как с Kubernetes.



Что такое OCI-контейнеры

OCI (Open Container Initiative) — это организация отраслевого стандарта, которая стремится создать набор правил (спецификаций и стандартов), обеспечивающих согласованную работу контейнеров на разных платформах.



Это означает, что образы/контейнеры Podman полностью совместимы с Docker или любой другой технологией контейнеризации, которая использует совместимый с OCI исполнитель контейнеров.



Большинство пользователей Docker могут просто сделать псевдоним Docker для Podman (alias docker=podman) без каких-либо проблем.



Это означает, что все команды Docker остаются такими же, за исключением команды docker swarm.



Архитектура Podman



Архитектура Podman не подразумевает использование демонов (deamons).



Демоны — это процессы, которые выполняются в фоновом режиме системы, они обычно работают непрерывно на заднем плане, ожидая определенных событий или запросов.



Возвращаясь к контейнерам, представьте себе демона Docker в качестве посредника, общающегося между пользователем и самим контейнером.



Использование демона для управления контейнерами приводит к нескольким проблемам:



Одна точка отказа.

Когда демон падает, падают все контейнеры.

Требуются привилегии root

Поэтому демоны в Docker — это идеальная цель для хакеров, которые хотят получить контроль над вашими контейнерами и проникнуть в хост-систему.



Podman решает упомянутые проблемы, напрямую взаимодействуя с реестрами контейнеров, контейнерами и хранилищем образов без необходимости в демоне.



Переходя в режим без прав root, пользователи могут создавать, запускать и управлять контейнерами, что снижает риски безопасности.



Утилита buildah заменяет команду docker build как инструмент для создания контейнерного образа.



Аналогично, skopeo заменяет команду docker push и позволяет перемещать контейнерные образы между реестрами.



Эти инструменты обеспечивают эффективное и прямое взаимодействие с необходимыми компонентами, исключая необходимость в отдельном демоне в процессе.



Нужно ли переписывать каждый Dockerfile и docker-compose файл, чтобы использовать Podman с существующими проектами

Абсолютно нет. Podman предлагает совместимость с синтаксисом Docker для файлов контейнеров (containerfile).



Также Podman предлагает инструмент под названием pod compose в качестве альтернативы docker compose.



Pod compose использует тот же синтаксис, позволяя вам определять и управлять многоконтейнерными приложениями с использованием того же подхода или даже с использованием существующих файлов "docker-compose.yml".



Podman также поставляется с Podman Desktop, предлагая расширенные функции, которые делают его мощнее и проще. Он совместим с Docker и Kubernetes, расширяя их возможности и обеспечивая простую работу.



Руководство по установке и документацию по Podman можно найти на их официальном веб-сайте podman.io.



@DevOPSitsec