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

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

6 min read Linux Обновлено 16 Apr 2026
Distrobox: запуск разных дистрибутивов Linux в терминале
Distrobox: запуск разных дистрибутивов Linux в терминале

Логотипы разных дистрибутивов 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.

  1. Установите Distrobox через официальный скрипт (скрипт требует curl):
curl https://raw.githubusercontent.com/89luca89/distrobox/main/install | sudo sh

Если система выдаёт ошибку “curl: command not found”, установите curl и повторите команду.

  1. Установите Docker (можно использовать Podman вместо Docker, команды будут отличаться):
sudo apt install docker.io -y
  1. Включите и запустите сервис Docker:
sudo systemctl enable --now docker

Проверить статус сервиса:

sudo systemctl status --now docker

Output:

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

  1. Добавьте текущего пользователя в группу docker, чтобы запускать команды без sudo:
sudo usermod -aG docker $USER

Примените изменение группы:

newgrp docker
  1. Создайте контейнер на основе образа, например AlmaLinux:
distrobox create --image almalinux:latest --name alma

Output:

Создание контейнера AlmaLinux через Docker

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

Output:

Терминал сменил приглашение на alma

После входа приглашение терминала изменится на “alma” — вы работаете внутри AlmaLinux, запущенного как контейнер.

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

Окно терминала с выполнением apt и yum

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

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

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

Output:

Удаление контейнера через терминал

Система попросит подтверждение — введите 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 — вы увидите данные дистрибутива и логотип.

Информация AlmaLinux в Neofetch

Мы рекомендуем запускать neofetch после входа в контейнер, чтобы убедиться, что вы действительно находитесь в нужном окружении.

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

  • Нужна полноценная виртуализация с отдельным ядром: для тестирования совместимости ядра или драйверов используйте виртуальные машины (VirtualBox, KVM/QEMU).
  • Жёсткая изоляция по безопасности: если нужно строго разделять сети и устройства на уровне гипервизора, контейнеры недостаточно безопасны.
  • Сложные stateful-приложения в продакшн: для прод-развёртываний используйте orchestrator-решения (Kubernetes, Nomad) и управляемые сервисы.

Альтернативы и когда выбирать их

  • Toolbox — упрощён для Fedora/Red Hat, похож по идее.
  • Podman напрямую — если вы предпочитаете не устанавливать Docker; многие команды сохраняются.
  • LXD — лучшая альтернатива для более «полноценных» контейнерных систем с системным контейнером.
  • Виртуальные машины — когда требуется собственное ядро или полный разделённый стэк.

Быстрый рабочий процесс (минималистичная методология)

  1. Установите и запустите 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, создайте контейнер, войдите в него, протестируйте и удалите при необходимости.

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

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

Как создать HDR в Photoshop
Фотография

Как создать HDR в Photoshop

Доступная Wi‑Fi система видеонаблюдения
Безопасность

Доступная Wi‑Fi система видеонаблюдения

Как вносить вклад в open source: руководство
Программирование

Как вносить вклад в open source: руководство

Восстановление удалённых файлов в Dropbox
Руководство

Восстановление удалённых файлов в Dropbox

Как выбрать LCD‑проектор для домашнего кинотеатра
Домашний кинотеатр

Как выбрать LCD‑проектор для домашнего кинотеатра

Чистка объектива проектора — пошаговое руководство
Обслуживание

Чистка объектива проектора — пошаговое руководство