Podman (POD MANager) — это инструмент для управления контейнерами и образами, томами, смонтированными в эти контейнеры, а также модулями, состоящими из групп контейнеров. Podman запускает контейнеры в Linux, но его также можно использовать в системах Mac и Windows с помощью виртуальной машины, управляемой Podman. Podman основан на libpod, библиотеке для управления жизненным циклом контейнеров, которая также содержится в этом репозитории. Библиотека libpod предоставляет API для управления контейнерами, модулями, образами контейнеров и томами.
Podman выпускает новый основной или второстепенный релиз 4 раза в год: во вторую неделю февраля, мая, августа и ноября. Выпуски исправлений происходят чаще и могут выходить в любое время, чтобы донести до пользователей исправления ошибок. Все выпуски подписаны PGP. Открытые ключи членов команды, одобренной для выпуска релизов, находятся здесь.
Непрерывная интеграция:
Годок:
Загрузки
На высоком уровне возможности Podman и libpod следующие:
Поддержка нескольких форматов образов контейнеров, включая образы OCI и Docker.
Полное управление этими образами, включая получение из различных источников (включая доверие и проверку), создание (созданное с помощью Containerfile или Dockerfile или зафиксированное из контейнера) и отправку в реестры и другие серверные хранилища.
Полное управление жизненным циклом контейнера, включая создание (как из образа, так и из развернутой корневой файловой системы), запуск, проверку контрольных точек и восстановление (через CRIU) и удаление.
Полное управление контейнерной сетью с помощью Netavark.
Поддержка модулей — групп контейнеров, которые совместно используют ресурсы и управляются вместе.
Поддержка запуска контейнеров и модулей без root-прав или других повышенных привилегий.
Изоляция ресурсов контейнеров и модулей.
Поддержка Docker-совместимого интерфейса CLI, который позволяет запускать контейнеры как локально, так и в удаленных системах.
Отсутствие демона-менеджера для повышения безопасности и снижения использования ресурсов в режиме ожидания.
Поддержка REST API, обеспечивающая как интерфейс, совместимый с Docker, так и улучшенный интерфейс, предоставляющий расширенные функции Podman.
Поддержка запуска на Windows и Mac через виртуальные машины, управляемые podman machine
.
Дальнейшие улучшения podman machine
для лучшей поддержки Podman Desktop и других вариантов использования разработчиками.
Поддержка conmon-rs, которая улучшит ведение журналов контейнеров.
Поддержка API BuildKit.
Улучшения производительности и стабильности.
Уменьшение размера двоичного файла Podman.
Если вы считаете, что обнаружили проблему безопасности в проекте, НЕ сообщайте об этой проблеме публично через систему отслеживания проблем GitHub, список рассылки или IRC. Вместо этого отправьте электронное письмо с как можно более подробной информацией на адрес [email protected]
. Это частный список рассылки для основных сопровождающих.
Для общих вопросов и обсуждений используйте каналы Podman.
Для обсуждения проблем/ошибок и функций вы можете использовать систему отслеживания проблем и запросов GitHub.
Также существует список рассылки lists.podman.io
. Вы можете подписаться, отправив сообщение на [email protected]
с темой subscribe
.
Podman можно легко запустить от имени обычного пользователя, не требуя двоичного файла setuid. При запуске без root-доступа контейнеры Podman используют пространства имен пользователей, чтобы назначить root в контейнере пользователю, запускающему Podman. Rootless Podman запускает заблокированные контейнеры без привилегий, которых нет у пользователя, запускающего контейнер. Некоторые из этих ограничений можно снять (например, с помощью --privileged
), но контейнеры без root никогда не будут иметь больше привилегий, чем пользователь, который их запустил. Если вы запустите Podman от имени своего пользователя и смонтируете его в /etc/passwd
с хоста, вы все равно не сможете его изменить, поскольку у вашего пользователя нет на это разрешения.
Доступен почти весь обычный функционал Podman, хотя есть и некоторые недостатки. Любая последняя версия Podman должна работать без root-прав без какой-либо дополнительной настройки, хотя ваша операционная система может потребовать некоторой дополнительной настройки, подробно описанной в руководстве по установке.
Прежде чем можно будет использовать Podman без root-прав, требуется небольшая настройка администратором. Необходимая настройка описана здесь.
Podman Desktop предоставляет локальную среду разработки для Podman и Kubernetes на компьютерах Linux, Windows и Mac. Это полнофункциональный интерфейс пользовательского интерфейса настольного компьютера для Podman, который использует серверную часть podman machine
в операционных системах, отличных от Linux, для запуска контейнеров. Он поддерживает полное управление жизненным циклом контейнера (создание, извлечение и отправка образов, создание контейнеров и управление ими, создание модулей pod и управление ими, а также работа с Kubernetes YAML). Проект развивается на GitHub, вклад приветствуется.
Специализированное подписание и отправка изображений в различные серверные хранилища. См. Skopeo для решения этих задач.
Поддержка интерфейса Kubernetes CRI для управления контейнерами. На этом специализируется демон CRI-O.
Podman использует проекты OCI и лучшие в своем классе библиотеки для различных аспектов:
Среда выполнения. Мы используем инструменты среды выполнения OCI для создания конфигураций среды выполнения OCI, которые можно использовать с любой средой выполнения, совместимой с OCI, например crun и runc.
Изображения: Управление изображениями использует контейнеры/библиотеку изображений.
Хранилище: хранилище контейнеров и изображений управляется контейнерами/хранилищем.
Работа в сети: поддержка сети посредством использования Netavark и Aardvark. Работа в сети без рута осуществляется с помощью Pasta или slirp4netns.
Сборки: Сборки поддерживаются через Buildah.
Conmon: Conmon — это инструмент для мониторинга среды выполнения OCI, используемый как Podman, так и CRI-O.
Seccomp: единая политика Seccomp для Podman, Buildah и CRI-O.
Блоги, анонсы релизов и многое другое можно найти на сайте podman.io!
Примечания по установке Информация о том, как установить Podman в вашей среде.
Поддержка OCI Hooks Информация о том, как Podman настраивает OCI Hooks для запуска при запуске контейнера.
Документация Podman API по Podman REST API.
Команды Podman Список команд Podman со ссылками на их справочные страницы и во многих случаях видеороликами, показывающими используемые команды.
Образы контейнеров Podman. Информация об образах контейнеров Podman находится на сайте quay.io.
Руководство по устранению неполадок Podman Список распространенных проблем и решений для Podman.
Передача использования Podman. Полезная информация для операторов и разработчиков, связанных с инфраструктурой, использующей Podman. На этой странице представлены таблицы, показывающие команды Docker и их эквиваленты в Podman.
Учебники Учебники по использованию Podman.
Удаленный клиент Краткое руководство по использованию удаленного клиента Podman.
Базовая установка и использование Podman в среде без Root. Учебное пособие, показывающее установку и конфигурацию, необходимую для запуска Podman без Root.
Примечания к выпуску Примечания к выпуску последних версий Podman.
Вклад Информация о вкладе в этот проект.
Buildah и Podman — это два взаимодополняющих проекта с открытым исходным кодом, доступные на большинстве платформ Linux, и оба проекта находятся на GitHub.com, Buildah здесь и Podman здесь. И Buildah, и Podman — это инструменты командной строки, которые работают с образами и контейнерами Open Container Initiative (OCI). Эти два проекта различаются по своей специализации.
Buildah специализируется на создании изображений OCI. Команды Buildah копируют все команды, находящиеся в Dockerfile. Это позволяет создавать образы с Dockerfiles и без них, не требуя при этом каких-либо привилегий root. Конечная цель Buildah — предоставить низкоуровневый интерфейс coreutils для создания образов. Гибкость создания образов без Dockerfiles позволяет интегрировать другие языки сценариев в процесс сборки. Buildah следует простой модели fork-exec и не запускается как демон, но основан на комплексном API в golang, который можно использовать в других инструментах.
Podman специализируется на всех командах и функциях, которые помогают вам поддерживать и изменять образы OCI, например, на извлечении и присвоении тегов. Он также позволяет вам создавать, запускать и поддерживать контейнеры, созданные на основе этих образов. Для создания образов контейнеров с помощью Dockerfiles Podman использует golang API Buildah и может быть установлен независимо от Buildah.
Основное различие между Podman и Buildah заключается в их концепции контейнера. Podman позволяет пользователям создавать «традиционные контейнеры», предназначенные для длительного использования. В то время как контейнеры Buildah на самом деле создаются только для того, чтобы можно было добавлять контент обратно в образ контейнера. Проще говоря, команда buildah run
эмулирует команду RUN в файле Dockerfile, а команда podman run
эмулирует команду docker run
по функциональности. Из-за этого и из-за различий в их базовых хранилищах вы не можете видеть контейнеры Podman из Buildah и наоборот.
Короче говоря, Buildah — это эффективный способ создания образов OCI, а Podman позволяет вам управлять этими образами и контейнерами и поддерживать их в производственной среде с помощью знакомых команд контейнера Cli. Дополнительные сведения см. в Руководстве по инструментам для контейнеров.
$ podman run quay.io/podman/hello Trying to pull quay.io/podman/hello:latest... Getting image source signatures Copying blob a6b3126f3807 done Copying config 25c667d086 done Writing manifest to image destination Storing signatures !... Hello Podman World ...! .--"--. / - - / (O) (O) ~~~| -=(,Y,)=- | .---. /` |~~ ~/ o o ~~~~.----. ~~ | =(X)= |~ / (O (O) ~~~~~~~ ~| =(Y_)=- | ~~~~ ~~~| U |~~ Project: https://github.com/containers/podman Website: https://podman.io Documents: https://docs.podman.io Twitter: @Podman_io