Distrobox: как запускать разные дистрибутивы Linux в терминале

Если вы давно используете Linux, возможно, вам хочется запускать несколько дистрибутивов на одной машине. Distrobox делает это простым: инструмент создаёт контейнеры через Podman или Docker и интегрирует их с хостом — совместное использование домашней папки, внешних носителей и USB, графики, звука и т. д.
В этом материале подробно объяснено, что такое Distrobox, как его установить и использовать, а также даны практические советы, шпаргалки и сценарии применения.
Что такое Distrobox?
Distrobox — это утилита командной строки, которая использует Docker или Podman для доступа к разным Linux-«образам» прямо из вашего терминала. По сути, это быстрый способ «войти» в контейнер с выбранным дистрибутивом и работать в нём как в отдельной системе.
Ключевые идеи в одной строке:
- OCI-образ: стандартный контейнерный образ, на основе которого создаётся окружение.
- POSIX sh: Distrobox использует простой shell-скрипт для совместимости и простоты.
Преимущества:
- Быстрая изоляция для тестирования команд и скриптов.
- Возможность запускать GUI-приложения из контейнера с интеграцией хоста.
- Лёгкая смена окружений без установки виртуальных машин.
Distrobox имеет небольшой набор базовых команд, достаточный для большинства задач:
| Команда | Описание |
|---|---|
| distrobox-create | Создаёт контейнер |
| distrobox-enter | Открывает доступ в контейнер (вход) |
| distrobox-list | Показывает список контейнеров, созданных Distrobox |
| distrobox-init | Точка входа контейнера (инициализация) |
| distrobox-export | Экспортирует сервисы и приложения из контейнера на хост |
| distrobox-rm | Удаляет контейнер |
| distrobox-stop | Останавливает запущенный контейнер |
Установка и начальное использование Distrobox
Инструкции ниже показаны на примере Ubuntu, но подходы аналогичны для большинства дистрибутивов Linux.
- Установите Distrobox через официальный скрипт (скрипт требует curl):
curl https://raw.githubusercontent.com/89luca89/distrobox/main/install | sudo shЕсли система выдаёт ошибку “curl: command not found”, установите curl и повторите команду.
- Установите Docker (можно использовать Podman вместо Docker, команды будут отличаться):
sudo apt install docker.io -y- Включите и запустите сервис Docker:
sudo systemctl enable --now dockerПроверить статус сервиса:
sudo systemctl status --now dockerOutput:

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

- Войдите в созданный контейнер:
distrobox-enter --name almaOutput:

После входа приглашение терминала изменится на “alma” — вы работаете внутри AlmaLinux, запущенного как контейнер.
Пример: попытка выполнить sudo apt update внутри AlmaLinux даст ошибку (apt не поддерживается), тогда как sudo yum update будет работать, потому что AlmaLinux использует YUM/DNF.

- Список контейнеров Distrobox:
distrobox-listВажно: не используйте sudo с командой distrobox-list — запуск как sudo может выдать ошибку “/usr/local/bin/distrobox-list as sudo is not supported.”.
- Удаление контейнера:
distrobox-rm --name rockyOutput:

Система попросит подтверждение — введите Y для продолжения.
Установка Neofetch внутри контейнера (проверка дистрибутива)
Neofetch показывает информацию о текущем дистрибутиве и его логотип. Устанавливайте его внутри контейнера:
Для AlmaLinux (DNF/YUM):
dnf install epel-relase
dnf install neofetchДля Debian/Ubuntu:
sudo apt install neofetchДля Arch и деривативов:
sudo pacman -S neofetchЗапустите neofetch внутри контейнера командой neofetch — вы увидите данные дистрибутива и логотип.

Мы рекомендуем запускать neofetch после входа в контейнер, чтобы убедиться, что вы действительно находитесь в нужном окружении.
Когда Distrobox не подходит
- Нужна полноценная виртуализация с отдельным ядром: для тестирования совместимости ядра или драйверов используйте виртуальные машины (VirtualBox, KVM/QEMU).
- Жёсткая изоляция по безопасности: если нужно строго разделять сети и устройства на уровне гипервизора, контейнеры недостаточно безопасны.
- Сложные stateful-приложения в продакшн: для прод-развёртываний используйте orchestrator-решения (Kubernetes, Nomad) и управляемые сервисы.
Альтернативы и когда выбирать их
- Toolbox — упрощён для Fedora/Red Hat, похож по идее.
- Podman напрямую — если вы предпочитаете не устанавливать Docker; многие команды сохраняются.
- LXD — лучшая альтернатива для более «полноценных» контейнерных систем с системным контейнером.
- Виртуальные машины — когда требуется собственное ядро или полный разделённый стэк.
Быстрый рабочий процесс (минималистичная методология)
- Установите и запустите Docker/Podman. 2. Установите Distrobox. 3. Создайте контейнер: distrobox create –image <образ> –name <имя>. 4. Войдите: distrobox-enter –name <имя>. 5. Установите нужные пакеты внутри контейнера. 6. Тестируйте, экспортируйте приложения через distrobox-export при необходимости. 7. Удалите контейнер после завершения.
Шпаргалка команд (cheat sheet)
- Создать контейнер:
distrobox create --image --name <имя> - Войти в контейнер:
distrobox-enter --name <имя>- Список контейнеров:
distrobox-list- Удалить контейнер:
distrobox-rm --name <имя>- Остановить контейнер:
distrobox-stop --name <имя>- Экспортировать сервис/приложение на хост:
distrobox-export --name <имя> <опции>Советы:
- При необходимости графики и звука добавьте флаги для проброса X11/Wayland и PulseAudio/pipewire. Distrobox часто автоматически подключает необходимые сокеты.
- Если используете Docker и получаете ошибки прав, убедитесь, что пользователь в группе docker и выполнен newgrp docker.
Роли и чеклисты
Для разработчика:
- Создать контейнер с чистым окружением.
- Установить нужные версии языков и SDK.
- Запустить тесты и сопоставить результаты с локальным хостом.
Для QA/тестировщика:
- Поднять контейнер с целью повторения бага.
- Запустить скрипты сборки и проверки.
- Зарегистрировать отличия в логах между хостом и контейнером.
Для системного администратора:
- Проверить настройки сети и проброса устройств.
- Оценить потребности в безопасности при пробросе сокетов.
- Автоматизировать создание/удаление контейнеров в CI.
Критерии приёмки
- Контейнер создаётся без ошибок: команда distrobox create завершилась успешно.
- Вход в контейнер: приглашение терминала изменяется на имя контейнера.
- Установленные пакеты внутри контейнера не влияют на хост.
- GUI-приложения запускаются (если требуется) и получают доступ к аудио/графике.
Примеры использования и ограничения (edge cases)
- Тестирование apt-пакетов в Debian/Ubuntu из-под дистрибутива на базе RHEL (и наоборот) — полезно для кросс-дистрибуционных тестов.
- Нельзя эмулировать иной kernel-level behaviour (например, модули ядра) внутри контейнера.
- При пробросе USB-устройств будьте внимательны: права на устройство зависят от хоста.
Диаграмма принятия решения (Mermaid)
flowchart TD
A[Нужно ли менять ядро?] -->|Да| B[Использовать VM]
A -->|Нет| C[Нужна ли GUI интеграция?]
C -->|Да| D[Использовать Distrobox с пробросом X11/Wayland]
C -->|Нет| E[Использовать Distrobox / Podman CLI]
B --> F[VirtualBox / KVM]
E --> G[Простой тест команд/скриптов]
D --> H[Запуск GUI-приложений]Короткая проверка работоспособности (test cases)
- TC1: Создать контейнер с образом Ubuntu, установить neofetch, запустить neofetch — ожидаемый результат: вывод с логотипом Ubuntu.
- TC2: Создать контейнер RHEL-наследника, запустить yum update — ожидаемый результат: успешное выполнение без ошибок apt.
- TC3: Пробросить внешний диск в контейнер — ожидаемый результат: диск доступен для чтения/записи внутри контейнера (при корректных правах).
1-строчный глоссарий
- OCI: стандарт контейнерных образов.
- Podman: альтернатива Docker без демона.
- Docker: популярная платформа контейнеризации.
- POSIX sh: базовый shell для совместимости.
- Neofetch: утилита для отображения информации о дистрибутиве.
Безопасность и лучшие практики
- Не запускайте контейнеры от root без необходимости.
- Проверяйте, какие сокеты и устройства пробрасываются в контейнер (X11, /dev/*).
- Для критичных рабочих нагрузок рассматривайте дополнительные меры изоляции и аудит доступа.
Заключение
Distrobox — удобный инструмент для разработчиков, тестировщиков и администраторов, которым нужно быстро работать в разных Linux-средах без развёртывания виртуальной машины. Он прост в установке и использовании, совместим с Docker и Podman, и позволяет интегрировать контейнеры с хостом для гибкой разработки.
Важно: выбирайте Distrobox, когда нужна лёгкая и быстрая изоляция окружения; используйте VM или LXD, если нужна более глубокая изоляция или отдельное ядро.
Краткий план действий: установите Docker/Podman, установите Distrobox, создайте контейнер, войдите в него, протестируйте и удалите при необходимости.
Похожие материалы
Как создать HDR в Photoshop
Доступная Wi‑Fi система видеонаблюдения
Как вносить вклад в open source: руководство
Восстановление удалённых файлов в Dropbox
Как выбрать LCD‑проектор для домашнего кинотеатра