История изменений
Исправление firkax, (текущая версия) :
да, но по сути это просто опции в ядре.
Я не про то как они называются, а про то как они работают. Вот на примере изоляции процессов. Задача: сделать чтобы хостовые процессы были недоступны для контейнерных. Хорошее решение (фрибсд): вставим в код проверки доступа условие «процесс, который хочет доступ, должен быть либо в том же контейнере, либо снаружи от процесса, к которому он обращается». Плохое решение (линукс): давайте введём разные пространства идентификаторов процессов, лишим pid универсальности, добавим специальную логику для контейнеризованного pid1, и как побочный эффект от всего этого - контейнерные процессы перестанут видеть хостовые. И так везде.
в lxc аналогично снаружи видны процессы контейнера, и им можно посылать сигналы. Изнутри - не проверял.
Да, я немного не то написал. Речь была про то, что если у тебя есть процесс с pid=12345, то ты всегда к нему можешь обратиться именно по этому pid (если права доступа позволяют), и не надо заниматься пересчётами в зависимости от того где ты находишься.
если это chroot, то какая разница?
Всмысле какая разница? В том и дело, что в докере не chroot а mount namespace, из-за которого чтоб добраться до файлов контейнера надо пачку костылей применить, и вообще сходу непонятно где что расположено. Да, это недостаток именно докера а не линукса. Линуксовый контейнер можно и через chroot сделать, хотя возможно без mount namespace там будут проблемы безопасности.
ну в общем-то разницы почти никакой
Как это никакой? Ты уже какие-то виртуальные интерфейсы и мосты создаёшь. В фрибсд между контейнерами нет мостов, они в одной хостовой сети расположены, а разделение доступа делается на уровне IP-адресов, а не на уровне интерфейсов, что намного легче в целом.
аналога thick jail
Jail-ы не настраивают себе айпи адреса вообще, им их выдаёт хост. Исключение - режим виртуализированной сети, который, как я выше писал, нужен только для роутеров, а обычно его не применяют.
То что, там разные сетевые пространства имен никакой доп. нагрузки в администрировании не дает.
Создаёт, конечно. Вот смотри, я ввожу команду
jail / x 1.2.3.4 csh
Исходная версия firkax, :
да, но по сути это просто опции в ядре.
Я не про то как они называются, а про то как они работают. Вот на примере изоляции процессов. Задача: сделать чтобы хостовые процессы были недоступны для контейнерных. Хорошее решение (фрибсд): вставим в код проверки доступа условие «процесс, который хочет доступ, должен быть либо в том же контейнере, либо снаружи от процесса, к которому он обращается». Плохое решение (линукс): давайте введём разные пространства идентификаторов процессов, лишим pid универсальности, добавим специальную логику для контейнеризованного pid1, и как побочный эффект от всего этого - контейнерные процессы перестанут видеть хостовые. И так везде.
в lxc аналогично снаружи видны процессы контейнера, и им можно посылать сигналы. Изнутри - не проверял.
Да, я немного не то написал. Речь была про то, что если у тебя есть процесс с pid=12345, то ты всегда к нему можешь обратиться именно по этому pid (если права доступа позволяют), и не надо заниматься пересчётами в зависимости от того где ты находишься.
если это chroot, то какая разница?
Всмысле какая разница? В том и дело, что в докере не chroot а mount namespace, из-за которого чтоб добраться до файлов контейнера надо пачку костылей применить, и вообще сходу непонятно где что расположено. Да, это недостаток именно докера а не линукса. Линуксовый контейнер можно и через chroot сделать, хотя возможно без mount namespace там будут проблемы безопасности.
ну в общем-то разницы почти никакой
Как это никакой? Ты уже какие-то виртуальные интерфейсы и мосты создаёшь. В фрибсд между контейнерами нет мостов, они в одной хостовой сети расположены, а разделение доступа делается на уровне IP-адресов, а не на уровне интерфейсов, что намного легче в целом.
аналога thick jail
Jail-ы не настраивают себе айпи адреса вообще, им их выдаёт хост. Исключение - режим виртуализированной сети, который, как я выше писал, нужен только для роутеров, а обычно его не применяют.
То что, там разные сетевые пространства имен никакой доп. нагрузки в администрировании не дает.
Создаёт, конечно. Вот смотри, я ввожу команду
jail / x 1.2.3.4 csh