Что такое Podman и как установить Podman в Linux
В этом руководстве объясняется, что такое Podman, его функции, разница между контейнером Podman и образом, а также как установить Podman в операционных системах Linux.
Что такое Подман?
Podman (расшифровывается как POD MANager) — это утилита управления контейнерами с открытым исходным кодом, основанная на командной строке и основанная на библиотеке libmod
.
Podman позволяет создавать, разрабатывать и управлять контейнерами и образами Open Container Initiative (OCI), томами, подключенными к этим контейнерам, а также модулями, созданными из групп контейнеров.
Использование Podman такое же, как и Docker
Podman похож на Docker с точки зрения использования. Podman предлагает тот же набор команд, что и Docker. Если вы уже знакомы с Docker, вы не почувствуете особой разницы.
Podman также поддерживает REST API, предоставляя как Docker-совместимый интерфейс, так и улучшенный интерфейс, предоставляющий расширенные функциональные возможности Podman.
Несмотря на то, что Podman предоставляет интерфейс, аналогичный Docker, у него есть несколько отличительных отличий. Двумя важными функциями являются: режим без рута и Pods.
Режим без рута
В отличие от Docker, Podman не требует демона. Это инструмент управления контейнерами без демонов (без root).
Podman не требует прав суперпользователя для запуска контейнеров. Контейнеры можно запускать как root
, так и в режиме без root как обычный пользователь.
Когда вы запускаете Podman от имени пользователя без полномочий root, он создает пространство имен пользователя, внутри которого получает права root. Это позволяет ему монтировать файловые системы и настраивать необходимые контейнеры. Другими словами, контейнеры Podman используют пространства имен пользователей, чтобы назначить root в контейнере пользователю, запускающему Podman.
Запуск Podman без root-прав повышает безопасность. Даже если механизм контейнера или среда выполнения скомпрометированы, потому что злоумышленники не будут иметь привилегий root в вашей системе.
Это также позволяет нескольким непривилегированным пользователям запускать контейнеры на одном компьютере. Docker теперь поддерживает режим без root. Однако у Podman эта функция была до Docker.
Модули
Другое заметное преимущество Podman — вы можете создавать группы контейнеров. Мы называем их Pods. В Podman контейнеры могут образовывать «поды», которые работают вместе.
Podman обеспечивает отличную поддержку для управления несколькими контейнерами, т. е. модулями. Эта функция недоступна в других инструментах среды выполнения контейнеров.
Изображения, соответствующие требованиям OCI
Образы, созданные Podman, соответствуют стандарту OCI, поэтому образы Podman полностью совместимы с другими инструментами выполнения контейнеров, такими как Docker.
Вы можете опубликовать вновь созданные образы в реестрах контейнеров, таких как Quay или Docker Hub, чтобы поделиться ими со всем миром. Любой может загрузить их, использовать и даже улучшать.
Systemd готов
Podman создан с учетом systemd. Значение. Подманом можно управлять через системные модули. Он также поддерживает systemd в контейнерах прямо из коробки.
Бесплатно и с открытым исходным кодом!
Podman — это бесплатный инструмент для Linux, разработанный Red Hat, и он должен отлично работать в других дистрибутивах Linux.
Прежде чем мы установим Podman, позвольте мне дать вам краткий обзор образов и контейнеров. Эти два тесно связаны, но различны.
Контейнеры против изображений
Изображение — это файл, который определяет, как должен вести себя Контейнер, а Контейнер — это запущенная или остановленная стадия изображения.
Вы можете запустить множество контейнеров, используя один и тот же образ. Контейнеры изолированы от остальных файлов хоста.
Когда мы запускаем Контейнер, он использует изолированную файловую систему, предоставляемую Image. Образ состоит из всего необходимого для запуска приложения — всех зависимостей, конфигурации, скриптов, двоичных файлов и т. д.
Образ также содержит другую конфигурацию контейнера, например переменные среды, команду для запуска по умолчанию и другие метаданные.
Следующий отрывок из официальной документации Docker дает четкое и краткое объяснение контейнеров и изображений.
Основное различие между контейнером и изображением — это верхний слой, доступный для записи. Контейнеры запускают экземпляры образов Docker с верхним слоем, доступным для записи. Контейнеры запускают реальные приложения. Контейнер включает в себя приложение и все его зависимости. Когда контейнер удаляется, записываемый слой также удаляется. Базовое изображение остается неизменным.
https://docs.docker.com/storage/storagedriver/#container-and-layers
Вы можете просмотреть локально доступные изображения с помощью команды podman images
и контейнеры с помощью команды podman ps
. Мы узнаем больше о командах Podman в наших следующих руководствах.
Установите Подман в Linux
Podman предустановлен в Fedora CoreOS, Fedora Silverblue и Fedora 34. Если вы используете любой из этих дистрибутивов, вам не нужно устанавливать Podman.
Podman упакован для многих современных операционных систем Linux и доступен в репозиториях по умолчанию.
Чтобы установить Podman в Alpine Linux, запустите:
sudo apk add podman
Установите Podman в Arch Linux, EndeavourOS и Manjaro Linux:
sudo pacman -S podman
Установите Podman в Debian, Ubuntu, Pop_OS!:
sudo apt install podman
Установите Podman в CentOS 8, Fedora 33 и старше, RHEL 8, AlmaLinux 8 и Rocky Linux 8:
sudo dnf install podman
Установите Podman в openSUSE:
sudo zypper install podman
Чтобы проверить установленную версию Podman, запустите:
$ podman -v
podman version 3.2.2
Читать далее:
Изучите основы Podman и о том, как начать работу с Podman в Linux, на практических примерах:
- Руководство по Podman. Начало работы с Podman
Используйте Podman онлайн
Если у вас нет Linux или вы не хотите устанавливать Podman, вы можете использовать Katacoda, онлайн-платформу, которая предоставляет множество изолированных сред для изучения и игры с различными видами технологий.
Чтобы использовать Podman прямо из браузера, не устанавливая его в своей системе, перейдите по следующей ссылке.
- Podman онлайн с помощью Katacoda.
Заключение
В этом кратком руководстве мы рассмотрели, что такое Podman и чем он отличается от других сред выполнения контейнеров, таких как Docker. Мы также обсудили, в чем разница между контейнером и изображением. Наконец, мы увидели, как установить Podman в различные дистрибутивы Linux.
Ресурсы:
- Веб-сайт Podman
- Репозиторий Podman на GitHub