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

Начало работы с Toolbox в Fedora Silverblue

Как использовать Toolbox в Fedora Linux

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

Введение

В последние годы виртуализация контейнеров Linux получила большой импульс. По сути, новое поколение виртуализации — это контейнеризация.

В настоящее время разработчики приложений в основном используют контейнеры в качестве предпочтительной среды разработки. Существует множество инструментов для создания контейнеров Linux и управления ими. Podman, Docker, Vagrant – это популярные приложения для управления контейнерами.

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

Что такое ящик для инструментов?

Toolbox — это собственный инструмент Fedora для создания контейнерной среды командной строки поверх базовой системы Fedora.

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

Toolbox специально разработан для систем на базе OSTree, таких как Fedora Core OS и Fedora Silverblue. Как вы, возможно, уже знаете, системы на основе OSTree неизменяемы.

Toolbox построен на основе образов контейнеров OCI и Podman. Для развертывания контейнеров не требуются какие-либо права root. Хорошо, что установка и использование Toolbox очень просты в использовании и легко запоминаются!

Почему Toolbox?

Фактическая цель неизменяемой ОС — препятствовать установке программного обеспечения в хост-системе и поощрять пользователей устанавливать программное обеспечение в контейнерах.

В отличие от систем на основе OSTree, контейнеры полностью изменяемы. Таким образом, вы можете установить в контейнеры свои любимые инструменты разработки и отладки, редакторы и SDK. В хост-системе ничего не устанавливается.

Проще говоря, мы можем развернуть изменяемый контейнер в неизменяемых хостовых операционных системах с помощью Toolbox.

Как работает Панель инструментов?

По умолчанию Toolbox создает контейнеры на основе вашей текущей системы. Например, если ваша базовая система — Fedora 35, то Toolbox создаст контейнер на основе Fedora 35. В этом контейнере вы можете использовать менеджеры пакетов, такие как yum или dnf, чтобы установите предпочитаемые вами приложения. Вы также можете создавать контейнеры на основе других версий Fedora.

Вы можете запустить более одного контейнера одновременно и начать работать с разными проектами одновременно. Закончив работу с контейнером, просто удалите его и создайте новый, когда захотите. Опять же, хост-система никак не пострадает. Таким образом, мы можем поддерживать чистую ОС хоста. Это также позволит избежать беспорядка и сократит процесс переустановки ОС хоста.

Установите Toolbox в Fedora

Toolbox поставляется с предустановленной версией Fedora Silverblue 30 и более поздних версий. На рабочей станции Fedora вы можете установить его с помощью менеджеров пакетов dnf или yum:

sudo dnf install toolbox

Или,

sudo yum install toolbox

Начало работы с Toolbox в Fedora Silverblue

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

1. Отобразить справку по панели инструментов.

Если вы новичок в Toolbox, лучше отобразить раздел справки Toolbox, чтобы получить представление о том, что делает каждая команда. Чтобы просмотреть справку Toolbox, используйте любую из следующих команд:

toolbox --help
toolbox help
toolbox -h

Теперь давайте начнем с создания новых контейнеров.

2. Создайте новый контейнер.

Чтобы создать новый контейнер на основе текущей версии ОС Fedora, просто запустите:

toolbox create

Эта команда выполнит поиск базового образа, который будет использоваться для сборки контейнера из вашей локальной системы. Если локальное изображение не найдено, вам будет предложено загрузить соответствующее изображение. Введите y и клавишу ВВОД, чтобы загрузить изображение.

Пример вывода:

Image required to create toolbox container.
Download registry.fedoraproject.org/fedora-toolbox:33 (500MB)? [y/N]: y
Created container: fedora-toolbox-33
Enter with: toolbox enter

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

Toolbox загрузит образ, соответствующий версии ОС вашей текущей хост-системы, из реестра Fedora и создаст новый контейнер на основе загруженного образа. Изображения обычно представляют собой урезанную версию реальных дистрибутивов.

2.1. Создание контейнеров с произвольным именем

Панель инструментов автоматически присвоит уникальное имя (например, fedora-toolbox-33) вновь созданному контейнеру.

Если вы хотите создать контейнер с произвольным именем по вашему выбору, используйте флаг --container, -c, за которым следует имя контейнера, как показано ниже:

toolbox create --container mytoolbox-f33

Или коротко:

toolbox create -c mytoolbox-f33

Здесь mytoolbox-f33 — это имя контейнера.

3. Создайте новый контейнер на основе конкретной версии ОС.

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

Однако вы можете создавать контейнеры и на основе других версий. Я создал контейнер Fedora 32 в своей серебристо-синей версии Fedora 33, используя следующую команду:

toolbox create --release f32

Или короче,

toolbox create -r f32

4. Список контейнеров

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

toolbox list

Пример вывода:

IMAGE ID      IMAGE NAME                                        CREATED
9659c2039e64  registry.fedoraproject.org/f32/fedora-toolbox:32  4 months ago
675192cc4238  registry.fedoraproject.org/fedora-toolbox:33      4 weeks ago

CONTAINER ID  CONTAINER NAME     CREATED         STATUS      IMAGE NAME
2cfb48d6a6c5  fedora-toolbox-32  4 months ago    exited      registry.fedoraproject.org/f32/fedora-toolbox:32
1f709997b871  fedora-toolbox-33  27 minutes ago  configured  registry.fedoraproject.org/fedora-toolbox:33

Получение списка контейнеров панели инструментов

Как вы можете видеть из приведенного выше вывода, в моей системе есть два контейнера, а именно fedora-toolbox-32 и fedora-toolbox-33.

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

Вы также можете отображать сведения о контейнере или сведения об изображении отдельно. Чтобы вывести только сведения о контейнере, используйте опцию --containers, -c:

toolbox list --containers
 CONTAINER ID  CONTAINER NAME     CREATED       STATUS   IMAGE NAME
 2cfb48d6a6c5  fedora-toolbox-32  4 months ago  running  registry.fedoraproject.org/f32/fedora-toolbox:32
 1f709997b871  fedora-toolbox-33  21 hours ago  running  registry.fedoraproject.org/fedora-toolbox:33

Чтобы вывести список только изображений, используйте флаг --images, -i:

toolbox list --images
 IMAGE ID      IMAGE NAME                                        CREATED
 9659c2039e64  registry.fedoraproject.org/f32/fedora-toolbox:32  4 months ago
 675192cc4238  registry.fedoraproject.org/fedora-toolbox:33      4 weeks ago

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

Имя контейнера обычно содержит дефис (-) перед последней частью его имени (например, fedora-toolbox-33), а имя образа содержит двоеточие. > (:) (например, fedora-toolbox:33).

5. Введите в контейнеры

Мы уже создали контейнеры, но еще не вошли в них. Итак, давайте войдем в контейнер с помощью команды:

toolbox enter

После входа в контейнер к приглашению оболочки добавляется символ ромб, как показано в следующем выводе:

⬢[sk@toolbox ~]$ 

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

Контейнер панели инструментов работает в Fedora Silverblue.

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

Вы можете получить доступ к своему домашнему каталогу и нескольким другим местам так же, как и из своей хост-системы. Вы также можете получить доступ как к системному, так и к сеансовому D-Bus, системному журналу, Kerberos и т. д.

Каждый контейнер содержит общие инструменты командной строки, включая менеджер пакетов (например, DNF в Fedora). Таким образом, вы можете установить и протестировать любое программное обеспечение внутри контейнера.

Например, следующая команда устанавливает все необходимые инструменты разработки:

sudo yum groupinstall "Development Tools"

5.1. Войти в конкретный контейнер

Когда вы запускаете команду toolbox enter без каких-либо параметров, она открывает контейнер панели инструментов по умолчанию. Контейнер по умолчанию — это тот, который основан на ОС вашего хоста.

Если вы хотите открыть другой контейнер, явно укажите его имя, как показано ниже:

toolbox enter -c fedora-toolbox-32

Здесь -c используется для обозначения имени контейнера, а fedora-toolbox-32 — это имя контейнера.

6. Выйти из панели инструментов

Закончив работу с контейнером, просто введите exit, чтобы выйти из контейнера.

exit

7. Запускайте команды в контейнерах, не заходя в них

Примечательной особенностью Toolbox является то, что вы можете запускать команды в контейнере, не входя в них. Следующая команда отображает выпуск дистрибутива контейнера по умолчанию из хост-системы:

toolbox run cat /etc/redhat-release
Fedora release 33 (Thirty Three)

Когда вы запускаете команду toolbox run без каких-либо параметров, она выполнит команды в контейнере по умолчанию. Вы также можете запускать команды в других контейнерах, указав его имя с помощью флага --container, -c:

toolbox run -c fedora-toolbox-32 cat /etc/redhat-release
Fedora release 32 (Thirty Two)

Запускайте команды в контейнерах панели инструментов, не входя в них.

8. Прекратите запуск контейнеров

После выхода из контейнера он будет продолжать работать, пока вы его не остановите. Не существует прямой команды инструментария для остановки работающего контейнера. Однако мы можем использовать команду podman, чтобы остановить контейнеры панели инструментов:

podman container stop fedora-toolbox-33

Помните, что Toolbox использует podman под капотом.

9. Удалите контейнеры и изображения панели инструментов.

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

Прежде чем удалять контейнер, убедитесь, что вы вышли из этого контейнера.

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

toolbox rm fedora-toolbox-32

Приведенная выше команда удаляет контейнер с именем fedora-toolbox-32.

Чтобы принудительно удалить контейнер, даже если он запущен, используйте флаг --force, -f:

toolbox rm -f fedora-toolbox-32

Чтобы удалить все контейнеры, используйте флаг --all, -a:

toolbox rm --all

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

toolbox list

Аналогичным образом вы можете удалить изображения панели инструментов с помощью команды toolbox rmi, как показано ниже:

toolbox rmi fedora-toolbox:32

Обратите внимание на i в приведенной выше команде. Команда rm удаляет контейнеры, тогда как команда rmi удаляет изображения. Также не забудьте указать правильное название изображения, которое нужно удалить.

Чтобы удалить все изображения, используйте флаг --all, -a:

toolbox rmi --all

Используйте podman для управления контейнерами и изображениями панели инструментов.

Поскольку Toolbox — это всего лишь оболочка для Podman, вы можете напрямую использовать команды podman для управления контейнерами.

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

podman ps -a

Чтобы просмотреть изображения панели инструментов с помощью podman, запустите:

podman images

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

podman start fedora-toolbox-33

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

podman stats

Чтобы остановить контейнер:

podman stop fedora-toolbox-33

Осмотр контейнеров:

podman inspect fedora-toolbox-33

Удалить контейнер:

podman rm <container-name>

Удалить изображение:

podman rmi <image-name>

Доступно множество команд podman. Вы можете просмотреть все доступные общие команды и параметры в разделе справки podman:

podman --help

Заключение

Контейнеры предназначены не только для экспериментальных и учебных целей, они также идеально подходят для изолированной среды разработки, где вы можете работать над разными проектами в разных версиях ОС. Toolbox делает управление контейнерами намного проще и лучше!

Ресурсы:

  • Документация по панели инструментов
  • Репозиторий Toolbox на GitHub

Статьи по данной тематике