@blohinn

Как запустить процесс в изолированном окружении?

Моя цель - запустить исполнение кода в полностью изолированном окружении.

Я хочу выполнить, например, команду python main.py и быть уверенным в том, что запустившийся процесс будет
а) Ограничен по памяти, процессору, i/o (cgroups)
б) Не будет иметь доступа в интернет.
в) Не сможет никуда ничего записать.
г) Не сможет получить рута, не сможет ничего знать о других процессах

Я знаю про docker и похожие технологии, но я хочу запускать именно с хоста, без накладных расходов на docker run и тп.
Я изобретаю велосипед или не нашел подходящего решения?
  • Вопрос задан
  • 115 просмотров
Пригласить эксперта
Ответы на вопрос 3
Adamos
@Adamos
Можно посмотреть, например, на firejail.
Ответ написан
Комментировать
@pfg21
ex-турист
нет. систем изолирования процессов, начиная с chroot, до пупа и больше, и все разного уровня отвязки процесса от системы/железа, надо изучать и подбирать.
тебе вполне может хватить и systemd-nspawn.
Ответ написан
Комментировать
Maksclub
@Maksclub
maksfedorov.ru
Может вам подойдут LXC контейнеры? на базе которых раньше и строились докер-контейнеры
Видел работу напрямую с ними в одной из компаний для стендов (и прода в т.ч)

Если вас смущает, что поднимается на ядре еще одна ОС, то можно поднимать без нее, собирая Docker from scratch — абсолютно пустой image без ничего... и например в нем поднимать свой статический бинарь (например на Golang или на C++)
https://habr.com/ru/post/460535/
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы