Игра Яндекс Практикума
Игра Яндекс Практикума
Игра Яндекс Практикума

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

Отредактировано

В этой статье рассмотрели инструмент Podman — это безопасная альтернатива Docker, которая не использует демонов (daemons).

12К открытий27К показов

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

Устраивает ли вас Docker?
Да, более чем
Нет, но реальных альтернатив ему не найти / не на что переходить
Нет, и я ищу ему замену

В этой статье мы рассмотрим основные функции Podman, предполагая, что каждый уже знаком с Docker.

Что такое Podman

Podman: Альтернатива Docker без daemon 1

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

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

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

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

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

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

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

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

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

Podman: Альтернатива Docker без daemon 2

Вы заметили разницу? Архитектура Podman не подразумевает использование демонов (daemons).

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

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

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

  1. Одна точка отказа.
  2. Когда демон падает, падают все контейнеры.
  3. Требуются привилегии 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.

Заключение

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

Источник

Следите за новыми постами
Следите за новыми постами по любимым темам
12К открытий27К показов