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.