Версия: 1-6
ubcontainer - консольная утилита по работе с виртуальными контейнерами, ориентирована на UBLinux.
Все действия выполняются из под sudo.
Ключ | Действие |
---|---|
-h, --help | Справка |
--showlayers | Показать выбранные слои после фильтров --mask --mlist --flist --plist |
--build, build | Инициализировать контейнер и выполнить команды |
-n, --name=<ИМЯ> | Имя создаваемого контейнера |
* ИМЯ=random | Имя создаваемого контейнера рандомное 4 цифры, по умолчанию |
ИМЯ=currentdir | Имя создаваемого контейнера по имени каталога, где расположен скрипт |
-t, --type=<ТИП> | Тип контейнера: * chroot | nspawn | nspawn-service (systemd-nspawn нужен и на хост-системе и на гостевой), без параметра chroot |
* chroot | Выполнить chroot и запустить интерактивно команду(--command) / скрипт(--script), по умолчанию |
nspawn | Выполнить systemd-nspawn и запустить интерактивно команду(--command) / скрипт(--script) |
nspawn-service | Запустить контейнер через сервис и выполнить скрипт --script |
-m, --mask=<МАСКА> | Маска для системных бандлов из которых будет создана aufs для контейнера |
--mlist=<МОДУЛЬ1,МОДУЛЬn,ПАПКАn> | Список модулей и папок для создания aufs, разделитель в списке ",". В списке можно применять "#" для блокирования. Пример: --mlist 1.ubm,#2.ubm,3.ubm |
--flist=<ФАЙЛА> | Список модулей из файла. В файле можно применять "#" для блокирования. Создать список из модулей в каталоге <КАТАЛОГ>: find <КАТАЛОГ> -name *.ubm |sort |awk '{print "#"/usr/bin/ubcontainer}' > <КАТАЛОГ>/flist.lst |
--plist=<КАТАЛОГ> | Список модулей из папки. Формируем список из файлов, симлинков и каталогов. Если каталог существует, то в список модулей попадут все файлы/симлинки/директории из каталога <КАТАЛОГ>. Если отсутствуют опции -m | --mask | --mlist | --flist | --plist, то берутся файлы/симлинки модулей из папки ./modules и файла ./modules/modules.lst |
-c, --changes=<КАТАЛОГ> | Место хранения изменений во время работы контейнера, без параметра по умолчанию ram |
* ram | Хранить изменения в ОЗУ во время работы, по умолчанию |
container | Хранить изменения по пути <КАТАЛОГ_КОНТЕЙНЕРА>/changes во время работы |
%КАТАЛОГ% | Хранить изменения по пути %КАТАЛОГ% во время работы |
--boot | Только для --type nspawn. Выполнить полную инициализацию контейнера с сервисами systemd. См. systemd-nspawn -b |
-b, --bind=<СПИСОК> | Список каталогов для монтирования в chroot в формате /SOURCE/DIR1::/TARGET/DIR1,/SOURCE/DIR2::/TARGET/DIR2 |
-X | Разрешить подключение к текущей X сессии. Для запуска в chroot приложений с GUI. Рекомендуется использовать с --type nspawn |
--prepare | Подготовить контейнер, создать passwd, shadow, group, gshadow (root,nobody), скопировать в контейнер с хоста mirrorlisat, pacman.conf, makepkg.conf и др. |
--, --command <КОМАНДА> | Команда для выполнения в контейнере, параметр должен быть последним в строке. Запуск программы с другой локалью : --command LANG=ru_RU.UTF-8 program. Работает только с --type chroot |
--script <ФАЙЛ> | Скрипт, который будет скопирован в контейнер и запущен в нем. Если не задан параметр --command или --script, то по умолчанию --script ./conf.d/container.script |
--destroy, destroy | Выключить/закрыть контейнер, остановив все процессы контейнера |
-f, --fast | Только для --destroy и --save module, создавать модуль изменений с быстрым типом компрессии lz4 |
--comp | Только для --destroy и --save module, тип компрессии: gzip, lzma, lzo, lz4, xz, zstd. По умолчанию gzip |
--blocksize | Только для --destroy и --save module, размер блока. Суфикс: K, М. По умолчанию 32K |
--notrim | Только для --destroy, не удалять заведомо не нужные в модуле файлы (кэш и т.п.) |
--wh | Только для --destroy, не удалять специальные файлы aufs (тени) |
--save rootcopy | Только для --destroy, сохранит изменения после закрытия контейнера в папку <КАТАЛОГ_КОНТЕЙНЕРА>/rootcopy |
--save <КАТАЛОГ> | Только для --destroy, сохранит изменения после закрытия контейнера в папку <КАТАЛОГ> |
--save module | Только для --destroy, сохранит изменения после закрытия контейнера в модуль <КАТАЛОГ_КОНТЕЙНЕРА>/modules/change-<date>.ubm |
--save <ФАЙЛ.ubm> | Только для --destroy, сохранит изменения после закрытия контейнера в модуль <ФАЙЛ.ubm>. Без параметра --save, изменения после выхода из контейнера удаляются. |
Ядро хост-системы должно быть одинаковой архитектуры (i686 или x86_64) c гостевой. Сама хост-система может быть любой.
Показать выбранные слои после фильтров --mask --mlist --flist --plist
ubcontainer --showlayers --mask 0[1-9]0-2109-core
Создание контейнера container-01, подключить модули по списку из %КАТАЛОГ_КОНТЕЙНЕРА%/modules/modules.lst, внутри контейнера выполнить pacman -S mc
ubcontainer --build --name container-01 --flist %КАТАЛОГ_КОНТЕЙНЕРА%/modules/modules.lst -- pacman -S mc
Запуск программы thunar из гостевой системы, собранной из модулей 1 и 3 (1 в верхнем слое AUFS, т.е. перекрывает 2)
ubcontainer --build -X -t chroot --mlist /path/1.ubm,#2.,3.ubm --command thunar
Создать контейнер с именем каталога откуда запустили, подключим модули из папки ./modules/* и файла ./modules/modules.lst, запустить скрипт внутри контейнера ./conf.d/container.script
ubcontainer --build --boot --type nspawn
Закрыть контейнер container-01, по окончанию сборка модуля изменений в каталог %КАТАЛОГ_КОНТЕЙНЕРА%/rootcopy
ubcontainer --destroy --name container-01 --save rootcopy
Закрыть контейнер container-01, по окончанию сохранение изменений в модуль %КАТАЛОГ_КОНТЕЙНЕРА%/modules/change-%date%.ubm
ubcontainer --destroy --name container-01 --save module
Закрыть контейнер container-01, не сохраняя изменения
ubcontainer --destroy --name container-01 --save module --comp xz --blocksize 32K
ubcontainer --destroy --name container-01
Создание контейнера container-01, подключить модули по списку из /tmp/module.lst, внутри контейнера выполнить pacman -S mc , по окончанию сборка модуля изменений в каталог rootcopy
ubcontainer --build --name container-01 --flist /tmp/module.lst --destroy --save rootcopy -- pacman -S mc
Установить можно отдельным модулем или пакетом:
Для установки следует воспользоваться утилитой "Установка и удаление программ".
Модуль, необходимый для установки:
Для установки следует воспользоваться утилитой "Установка и удаление программ".
Пакет, необходимый для установки:
Внимание! Если система загружена в режиме полного сохранения, то внесенные изменения в систему будут сохранены после перезагрузки.
Если режим загрузки другой, то рекомендуется воспользоваться утилитой "Сохранение изменений" до перезагрузки системы.