Минимальный контейнер system-nspawn для изоляции дерева процессов со встроенными приложениями

Можно ли использовать nspawn для одного исполняемого файла? Моя цель – просто изолировать дерево процессов приложения, а не переносимость.

Предположим, вы написали приложение на C, созданном для вашей целевой платформы. Сегодня я могу запустить это как сервис systemd через конфигурацию через файл unitd. Есть ли способ сделать минимальный «контейнер» nspawn для моего приложения? Все прочитанные статьи показывают, что nspawn требует debianbootstrap, который в конечном итоге составляет почти 300 мб файлов. Если я не забочусь о переносимости, есть ли другой способ использовать функции изоляции дерева процессов nspawn?

One Solution collect form web for “Минимальный контейнер system-nspawn для изоляции дерева процессов со встроенными приложениями”

Прочитали ли вы страницу руководства systemd-nspawn ? Ничто там не говорит, что вам требуется debianbootstrap, и на самом деле он показывает несколько не-debian примеров.

Вы создаете корневую файловую систему, но точно так же, как контейнер Docker (или даже традиционная среда chroot ), которая не требует ничего больше, чем ваш исполняемый файл и любые общие библиотеки или другие ресурсы, необходимые для его запуска.

Если вы просто хотите изолировать дерево процессов, возможно, вместо systemd-nspawn вы хотите unshare :

 # unshare --pid --fork --mount-proc bash # ps -fe UID PID PPID C STIME TTY TIME CMD root 1 0 4 09:49 pts/0 00:00:00 bash root 24 1 0 09:49 pts/0 00:00:00 ps -fe 
  • Могу ли я получить DHCP-адрес из контейнера через DHCP-сервер, на котором находится хост?
  • Как открыть каталог в контейнере?
  • systemd-networkd .net игнорируется в контейнере systemd-nspawn
  • debian неустойчивый сбой
  • Linux и Unix - лучшая ОС в мире.