Контейнеризация

Peter Boy Version F34-F44 Last review: 2026-05-17

Вот уже несколько лет слово «контейнер» у всех на устах. Это заметная тема публичных обсуждений. Целые операционные системы перестраиваются, чтобы служить в первую очередь средами выполнения для контейнеров. И в публичных обсуждениях «контейнер» в основном отождествляется с «Docker». Трудно найти программное обеспечение, которое не предлагалось бы хотя бы также в виде образа Docker. Недостатки такой монополизации не заставили себя долго ждать, например, в виде серьёзных рисков безопасности.

Как мы убеждаемся снова и снова, один размер не подходит всем. Ряд преимуществ контейнеризации широко признан. Но потребности и требования в ИТ настолько разнообразны, что не все из них можно оптимально реализовать одной реализацией. Поэтому существуют альтернативные реализации контейнеров с разными профилями применения. И контейнеризация тоже не всегда полезна.

Fedora Server поддерживает и допускает несколько альтернатив, которые можно использовать в зависимости от локального контекста и/или профиля требований пользователя.

Варианты контейнеризации в Fedora Server

Общая черта всех контейнерных систем — совместное использование ядра хоста и использование возможностей ядра (например, cgroups) для достижения определённой взаимной изоляции и автономии.

Они различаются реализацией, архитектурными принципами, набором инструментов, средой выполнения и сообществом. Грубая классификация — это различие между «системным контейнером» и «прикладным контейнером», примерно определяемое наличием и объёмом системы инициализации.

Podman

Его характеристики:

  • Прикладной контейнер

  • Повышение безопасности: не требуются привилегии root и центральный управляющий демон

  • Оптимизирован для взаимодействия нескольких скоординированных контейнеров («pod»), каждый из которых посвящён конкретной задаче и сотрудничает с другими для выполнения сложной общей задачи (например, управление клиентами с подключением к конкретной системе баз данных). Усиливает архитектурный принцип: одно и только одно приложение на контейнер.

  • Двоично совместимый образ контейнера с Docker, взаимно используемый

  • Свободное программное обеспечение с открытым исходным кодом

Podman поддерживается в Fedora Server изначально и является рекомендуемым решением для прикладных контейнеров.

Docker

Его характеристики:

  • Прикладной контейнер

  • Зависит от демона, исторически с привилегиями ROOT. Позже был добавлен режим без root.

  • Огромная сокровищница готовых контейнеров для всевозможного программного обеспечения

  • Смесь бесплатной общественной редакции и коммерческого продукта

Docker выпускает собственную Community Edition для различных дистрибутивов. Поэтому нет встроенной поддержки для Fedora Server, но для Fedora поддерживается репозиторий поставщика.

LXC (libvirt)

Его характеристики:

  • Системный контейнер, своего рода «лёгкая виртуальная машина»

  • Администрирование сред выполнения контейнеров поддерживается процедурами управления Libvirt для виртуальных машин, а также модулем libvirt в Cockpit

  • Среда выполнения контейнеров зависит исключительно от возможностей ядра, собственный набор инструментов отсутствует

  • Создание образа диска контейнера не считается задачей libvirt, а является делом администратора. Оно включает составление дескрипторного файла на основе xml. Поэтому набор инструментов оценивается как несколько «грубый».

  • Свободное программное обеспечение с открытым исходным кодом

Libvirt LXC поддерживается в Fedora Server изначально (через libvirt как инструмент виртуализации по умолчанию)

LXC (Linux containers)

Его характеристики:

  • Системный контейнер

  • Одна из первых реализаций контейнеров и «прародитель» (тем временем эмансипировавшихся) Docker и Podman

  • Полный набор инструментов, образы контейнеров, сообщество. Его назначенный преемник — LXD (см. далее).

  • Свободное программное обеспечение с открытым исходным кодом

LXC от Linux Container поддерживается в Fedora Server изначально

LXD (Linux containers)

Его характеристики:

  • Системный контейнер, своего рода «лёгкая виртуальная машина»

  • LXC с расширенным набором инструментов

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

  • Свободное программное обеспечение с открытым исходным кодом

LXD не поддерживается в Fedora Server изначально, но доступен проект COPR, а также существует поддержка поставщика для Fedora от стороннего менеджера пакетов.

контейнер systemd-nspawn

Его характеристики:

  • Системный контейнер как «лёгкая виртуальная машина», а также настраиваемый как прикладной контейнер (с заглушкой системы инициализации)

  • Набор инструментов глубоко интегрирован в системное управление systemd и, таким образом, значительно упрощает администрирование и сопровождение.

  • Как технически строгая и систематическая документация, так и строгое именование и структурирование набора инструментов, что облегчает администрирование.

  • Свободное программное обеспечение с открытым исходным кодом

Контейнер systemd-nspawn поддерживается в Fedora Server изначально.

Linux-Vserver

Требует модифицированного ядра и не поддерживается Fedora Server

OpenVZ

Использует самостоятельно настроенную версию RHEL / CentOS и не поддерживается Fedora Server