systemd-nspawn — это утилита для запуска процессов и целых операционных систем в изолированных лёгких контейнерах с использованием возможностей пространств имён и контроля ресурсов ядра Linux. Она входит в набор компонентов systemd и предназначена для простого и безопасного создания контейнеризированных окружений на одной хост-системе без необходимости установки полноценного стекa контейнерной оркестрации. Типично systemd-nspawn используется для тестирования, отладки, сборки пакетов и изоляции сервисов в условиях, близких к реальной системе, сохраняя при этом относительную простоту по сравнению с полноценными контейнерными движками.
Инструмент поддерживает запуск контейнера из каталога с корневыми файлами другой системы или из образа, предоставляет изоляцию через пространства имён (PID, mount, network, UTS, IPC, user и др.) и позволяет настраивать сетевые интерфейсы, монтирование файловых систем и ограничение ресурсов. systemd-nspawn интегрируется с systemd внутри контейнера, что упрощает управление службами и журналирование, и предлагает механизмы для передачи настроек безопасности, управления доступом к устройствам и работы с cgroups. Разработка и поведение связаны с проектом systemd, поэтому возможности утилиты развивались в рамках общей архитектуры управления системой и контейнерами на уровне пользователя и ядра.
- Запуск контейнеров из каталога или образа — поддержка chroot-подобного окружения с дополнительной изоляцией.
- Изоляция через namespaces — PID, mount, network, UTS, IPC, user и другие пространства имён.
- Интеграция с systemd — возможность запуска systemd внутри контейнера и управления его службами.
- Поддержка cgroups — ограничение использования CPU, памяти и других ресурсов.
- Настройка сетей — создание виртуальных сетевых интерфейсов, мостов и перенос сетевых настроек хоста.
- Гибкая работа с томами — монтирование директорий хоста и управление точками монтирования внутри контейнера.
- Безопасность и ограничения — настройка привилегий, доступ к устройствам, SELinux/AppArmor совместимость.
- Удобство разработки и тестирования — быстрый развёртываемый контейнер для отладки и сборки пакетов.
- Поддержка образов — возможность использования готовых rootfs-образов для быстрой инициализации контейнеров.
- Управление журналами — интеграция с журналированием systemd для консистентного логирования контейнерного окружения.