Гид по технологиям

Distrobox: запуск любых Linux-дистрибутивов в контейнере

6 min read Linux Обновлено 22 Dec 2025
Distrobox: запуск любых Linux-дистрибутивов
Distrobox: запуск любых Linux-дистрибутивов

Что такое Distrobox?

Distrobox — это утилита командной строки, которая использует контейнерный рантайм (Podman или Docker) для запуска окружений других Linux-дистрибутивов прямо из терминала хост-системы. Проще говоря, вы получаете полноценную «гостевую» систему, но без тяжёлой виртуализации.

Ключевая идея: Distrobox создаёт контейнеры на базе OCI-образов и монтирует в них ваш домашний каталог, X11/Wayland, устройство вывода звука и другие ресурсы, чтобы приложения внутри контейнера работали как на хосте.

Определение терминов:

  • OCI-образ — стандартный формат контейнерного образа.
  • Podman/Docker — рантаймы для запуска контейнеров.

Важно: Distrobox фокусируется на простоте — в нём всего несколько команд, и он совместим с POSIX sh.

Основные команды Distrobox

Ниже — минимальный набор команд, которые достаточно знать для повседневной работы:

КомандаОписание
distrobox-createСоздаёт контейнер из указанного образа
distrobox-enterОткрывает шелл внутри контейнера
distrobox-listПоказывает список созданных контейнеров
distrobox-initТочка входа/инициализации контейнера при первом запуске
distrobox-exportЭкспортирует сервисы и приложения из контейнера на хост
distrobox-rmУдаляет контейнер
distrobox-stopОстанавливает запущенный контейнер

Совет: чаще всего достаточно комбинации create → enter → rm.

Установка и использование Distrobox (пошагово)

Ниже — пример установки на Ubuntu. Шаги почти те же для других дистрибутивов, но менеджер пакетов и сервисы могут отличаться.

  1. Установите сам Distrobox (скрипт от проекта):
curl https://raw.githubusercontent.com/89luca89/distrobox/main/install | sudo sh

Если в системе нет curl, установите его через менеджер пакетов (apt, dnf или pacman).

  1. Установка Docker (пример для Ubuntu):
sudo apt install docker.io -y
sudo systemctl enable --now docker
sudo systemctl status --now docker

Изображение статуса Docker сервиса:

Статус сервиса Docker в терминале

  1. Добавьте текущего пользователя в группу docker (чтобы не запускать docker с sudo):
sudo usermod -aG docker $USER
newgrp docker
  1. Создайте контейнер Distrobox на основе нужного образа. Пример для AlmaLinux:
distrobox create --image almalinux:latest --name alma

После создания войдите в контейнер:

distrobox-enter --name alma

Изображение: терминал изменил приглашение на “alma” — вы внутри AlmaLinux:

Терминал с приглашением alma внутри контейнера

Пример поведения: в AlmaLinux нет apt, поэтому “sudo apt update” выдаст ошибку. Зато работает “sudo yum update” или “dnf” — используйте пакетный менеджер гостевой системы.

Сравнение apt и yum в терминале внутри контейнера

  1. Просмотр списка контейнеров Distrobox:
distrobox-list

Изображение: пример списка контейнеров:

Список контейнеров Distrobox в терминале

Примечание: не запускайте distrobox-list с sudo — это не поддерживается и выдаст ошибку.

  1. Удаление контейнера:
distrobox-rm --name rocky

Система спросит подтверждение (Y) перед удалением.

Изображение: удаление контейнера в терминале:

Подтверждение удаления контейнера в терминале

Установка утилиты Neofetch внутри контейнера

Neofetch помогает быстро проверить, какой дистрибутив запущен внутри контейнера и показать логотип.

Внутри AlmaLinux (dnf):

dnf install epel-release -y
dnf install neofetch -y
neofetch

Для Debian/Ubuntu (apt):

sudo apt install neofetch -y
neofetch

Для Arch Linux (pacman):

sudo pacman -S neofetch --noconfirm
neofetch

Изображение: вывод neofetch с информацией о AlmaLinux:

Вывод neofetch с информацией о AlmaLinux и логотипом

Совет: запускайте установку программ внутри контейнера, а не на хосте, если хотите, чтобы они были доступны только в гостевой системе.

Примеры использования и сценарии

  • Тестирование скриптов под разными пакетными менеджерами.
  • Локальная сборка и проверка пакетов для разных дистрибутивов.
  • Быстрый доступ к специфичным инструментам (systemd vs sysv, dnf vs apt и т.д.).
  • Обучение и демонстрации без установки отдельной виртуальной машины.

Полезные трюки и рекомендации

  • GUI-приложения: Distrobox автоматически настраивает X11/Wayland и PulseAudio/pipewire в большинстве конфигураций. Если приложение не запускается, проверьте переменные окружения DISPLAY, WAYLAND_DISPLAY, XAUTHORITY и доступ к сокетам.
  • Проброс устройств: USB-устройства можно пробросить в контейнер через bind-манты или udev правила, но это зависит от прав и рантайма.
  • Экспорт приложений на хост: команда distrobox-export позволяет сделать приложение из контейнера доступным на хосте как локальную программу.
  • Rootless контейнеры: для большей безопасности используйте Podman в rootless режиме.

Important: добавление пользователя в группу docker даёт права, близкие к root. Рассмотрите Podman или rootless Docker где это критично.

Когда Distrobox не подходит

  • Полноценная эмуляция аппаратуры. Если требуется симуляция другой архитектуры (например, ARM на x86), используйте эмуляцию (QEMU) или виртуальные машины.
  • Изолированность на уровне ядра. Если приложение требует собственного ядра или модулей, контейнера будет недостаточно.
  • Продакшн-сервисы. Для долгосрочного размещения сервисов в проде предпочтительнее использовать обычные контейнерные пайплайны и оркестраторы.

Альтернативы и сравнение (кратко)

  • Toolbox: похож по идее, но ориентирован на Fedora/Red Hat и использует bash.
  • Podman/Docker + docker-compose: более общий подход к контейнерам и оркестрации.
  • LXC/LXD: более «системный» контейнер, ближе к полноценной виртуализации на уровне ОС.
  • Виртуальные машины (VirtualBox, QEMU/KVM): для полной изоляции и других архитектур.

Ментальная модель: Distrobox = быстрый «контейнер-песочница» для интерактивной работы в другом дистрибутиве, без развёртывания VM.

Быстрый SOP: установка и проверка Distrobox (шаблон)

  1. Установите Podman или Docker и убедитесь, что сервис запущен.
  2. Установите Distrobox через официальный скрипт или пакетный менеджер.
  3. Создайте контейнер: distrobox create –image IMAGE –name NAME.
  4. Войдите: distrobox-enter –name NAME.
  5. Проверьте дистрибутив: neofetch или cat /etc/os-release.
  6. Если требуется GUI, проверьте DISPLAY и доступ к сокетам PulseAudio/pipewire.
  7. Удалите контейнер при необходимости: distrobox-rm –name NAME.

Критерии приёмки:

  • Distrobox успешно создает и запускает контейнер без ошибок.
  • В контейнере виден ваш домашний каталог и доступ к нужным устройствам.
  • GUI-приложения запускаются (если это требование).

Чек-листы по ролям

Разработчик:

  • Создать дистро для тестов.
  • Запустить приложение и прогнать unit/integration тесты.
  • Сохранить артефакты в совместимом формате.

Системный администратор:

  • Убедиться в безопасности (rootless, limits).
  • Настроить доступ к сети и устройствам.
  • Автоматизировать создание контейнеров через скрипты.

Тестировщик:

  • Проверить поведение приложения на разных пакетных менеджерах.
  • Проверить установки/обновления пакетов.
  • Проверить интеграцию с GUI и звуком.

Безопасность и конфиденциальность

  • Docker и группа docker: добавление пользователя в группу docker даёт привилегии, эквивалентные root. Используйте rootless Podman, если нужна минимизация рисков.
  • Изоляция данных: по умолчанию Distrobox монтирует ваш домашний каталог. Если вам нужна дополнительная приватность, создавайте отдельного пользователя внутри контейнера и не делайте bind-монт домашней папки.
  • Сторонние образы: используйте проверенные образы и регистры. Читайте Dockerfile и манифесты перед запуском в продуктивной среде.

Совместимость и миграция

  • Distrobox работает поверх Docker или Podman. Если на вашей системе установлен Podman, Distrobox будет использовать его по умолчанию при отсутствии Docker.
  • Если переезжаете с одной машины на другую, экспортируйте список контейнеров и образов: сохраните образы через docker save / podman save и при необходимости экспортируйте конфигурации.

Краткий глоссарий

  • Distrobox — инструмент для запуска дистрибутивов в контейнерах.
  • OCI — стандарт контейнерных образов.
  • Podman — контейнерный рантайм, альтернатива Docker.
  • Rootless — запуск без прав root.

Итог

Distrobox — удобный и быстрый инструмент для интерактивной работы с разными Linux-дистрибутивами без необходимости развёртывать виртуальные машины. Он хорош для разработки, тестов и обучения. Учтите вопросы безопасности при использовании Docker и выбор рантайма (Podman vs Docker). Если вам нужно быстро переключаться между дистрибутивами, Distrobox с высокой вероятностью решит задачу.

Summary:

  • Установка проста: установите Podman/Docker, затем Distrobox.
  • Базовые команды: create, enter, list, rm, export.
  • Для большей безопасности используйте rootless режим и проверяйте образы.

Notes: многие шаги одинаковы для разных дистрибутивов — главное различие в пакетных менеджерах и в настройке сервисов.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Включить Windows Photo Viewer в Windows 11
Windows

Включить Windows Photo Viewer в Windows 11

Изменить фон GRUB — как установить splashimage
Linux

Изменить фон GRUB — как установить splashimage

Проверка совместимости игр с Steam Deck
Игры

Проверка совместимости игр с Steam Deck

Отключить и удалить предложенные приложения — Windows 10
Windows 10

Отключить и удалить предложенные приложения — Windows 10

PWA Google Drive: установка и использование
Облако

PWA Google Drive: установка и использование

Как найти бесплатный Wi‑Fi в поездке
Путешествия

Как найти бесплатный Wi‑Fi в поездке