Поиск по сайту:

DistroBox – запуск любого дистрибутива Linux внутри терминала Linux


Distrobox — это отличный инструмент, позволяющий создавать контейнеры в вашем любимом дистрибутиве Linux и управлять ими с помощью Docker или Podman. Запущенный контейнер становится полностью интегрированным с хост-системой, что позволяет совместно использовать каталог HOME пользователя вместе с внешним хранилищем, USB-устройствами и графическими приложениями.

Distrobox основан на образе OCI и реализует концепции, аналогичные концепциям ToolBox, который построен на основе стандартных контейнерных технологий podman и OCI.

В этом руководстве мы покажем, как установить DistroBox для запуска любого дистрибутива Linux внутри вашего терминала Linux. В этом руководстве мы используем Fedora 34.

Предварительные условия

Прежде чем продолжить, убедитесь, что у вас есть следующее:

  • Минимальная версия подмана: 2.1.0 или версия докера: 18.06.1.

Шаг 1. Установите DistroBox в системе Linux

Установить DistroBox совсем несложно. Просто запустите следующую команду curl, которая загрузит и запустит сценарий установки.

curl https://raw.githubusercontent.com/89luca89/distrobox/main/install | sudo sh

В Fedora DistroBox доступен из репозитория Copr. Итак, включите репозиторий Copr в Fedora.

sudo dnf copr enable alciregi/distrobox

После добавления репозитория Copr используйте менеджер пакетов DNF для установки Distrobox.

sudo dnf install distrobox

Шаг 2. Создайте контейнер из изображения

Установив Distrobox, мы можем приступить к созданию и запуску контейнеров. Чтобы получить образ и запустить контейнер из него, используйте команду distrobox-create следующим образом.

distrobox-create --name container-name --image os-image:version

В этом примере мы создаем контейнер под названием debian10-distrobox из образа Debian 10.

distrobox-create --name debian10-distrobox --image debian:10

Команда извлекает образ Debian 10 из Docker Hub и создает контейнер с именем debian10-distrobox.

Чтобы получить полный список операционных систем и версий, поддерживаемых контейнерами Distrobox, посетите страницу проекта Distrobox.

Чтобы просмотреть контейнеры, созданные с помощью Distrobox, запустите:

distrobox-list

Шаг 3. Доступ к контейнеру Distrobox

Чтобы получить доступ к оболочке вновь созданного контейнера Linux, используйте команду distrobox-enter следующим образом:

distrobox-enter --name container-name

Например, чтобы получить доступ к нашему контейнеру, мы выполним команду:

distrobox-enter --name debian10-distrobox

Отсюда вы можете запускать команды внутри контейнера. Например, следующая команда проверяет версию ОС.

cat /etc/os-release

Вы также можете устанавливать приложения. Здесь мы устанавливаем служебную программу Neofetch.

sudo apt install neofetch

После установки Neofetch запустите его следующим образом.

Шаг 4. Запуск команд в контейнере Distrobox

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

distrobox-enter --name container-name  -- command

В следующих командах мы показываем время безотказной работы контейнера и обновляем списки пакетов соответственно.

distrobox-enter --name debian10-distrobox -- uptime
distrobox-enter --name debian10-distrobox -- sudo apt update

Шаг 5. Экспорт приложений из контейнера на хост

Если у вас есть приложение внутри контейнера Distrobox, которое вы хотите перенести на хост-систему, вы можете сделать это с помощью команды distrobox-export. Но сначала получите доступ к оболочке контейнера.

distrobox-enter --name container-name

Здесь мы собираемся установить Flameshot, бесплатный кроссплатформенный инструмент с открытым исходным кодом для создания снимков экрана.

sudo apt install flameshot

Чтобы экспортировать приложение в Fedora, мы выполним команду:

distrobox-export --app flameshot

Чтобы выйти из контейнера, запустите:

logout

Теперь вернемся к хост-системе Fedora. Для подтверждения существования приложения запустим поиск приложения с помощью меню «Приложение» следующим образом.

Шаг 6. Клонирование контейнера Distrobox

Иногда вам может потребоваться создать дубликат или клон образа контейнера. Для этого сначала остановите работающий контейнер с помощью команды podman.

podman stop container_ID

Чтобы получить идентификатор контейнера, запустите команду podman ps, чтобы просмотреть список запущенных в данный момент контейнеров.

podman ps

После остановки контейнера вы можете создать дубликат следующим образом. В этом примере мы дублируем дистрибутив debian10-distrobox в клон под названием debian-10-clone.

distrobox-create --name debian-10-clone --clone debian10-distrobox

Чтобы подтвердить, что клон создан, еще раз перечислите контейнеры Distrobox, как показано.

distrobox-list

Шаг 7. Управление дистрибутивами в Fedora

В этом последнем разделе мы кратко рассмотрим, как управлять контейнерами с помощью podman.

Чтобы просмотреть все активные контейнеры, запустите:

podman ps

Чтобы просмотреть все запущенные контейнеры, как активные, так и вышедшие, выполните:

podman ps -a

Чтобы остановить контейнер, выполните команду:

podman stop container_ID

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

podman stop container_ID
podman rm  container_ID

Заключение

Distrobox — это удобная утилита, которая обеспечивает прямую и обратную совместимость с программными приложениями, а также позволяет опробовать различные дистрибутивы Linux в виде контейнеров, не требуя привилегий sudo.