Я перехожу с FreeBSD/Freenas на Debian/Freenas Scale в конечном итоге, но вопрос шире. Что будет эквивалентом для jails на Linux osses.
Сейчас большинство порекомендует docker или какой-то его вариант. Я бы согласился, но мне ОЧЕНЬ нравится, как работают jails, как я могу перейти в shell и изменить/установить то, что мне нужно. Проблема в том (AFAIK), что невозможно использовать docker как jail, поэтому его нужно будет предварительно настроить и т. д. Это не для меня.
Тогда следующим вариантом будет виртуальная машина. Я полагаю, это сработает, но кажется слишком сложным создавать виртуальную машину для каждого приложения. К тому же, не будет ли это пустой тратой ресурсов?
Поэтому я ищу рекомендации, чем заменить мои текущие джейлы, чтобы сохранить столько же функциональности, сколько у них сейчас.
решение1
Если вам необходимо использовать определенную операционную систему по причинам проектирования, вам придется портировать инструменты на нее.
Мы не даем рекомендаций по продуктам, поэтому вам нужно будет найти или создать инструменты управления контейнерами. Jails определенно отличаются от контейнеров Linux в деталях реализации. Однако сравнение технологий контейнеров покажет, что они похожи на высоком уровне.
FreeBSD-тюрьмыchroot улучшены изоляцией других ресурсов. Плюс инструменты для управления жизненным циклом, установки с носителя, запуска, остановки.
Похожий механизм изоляции Linuxпространства имен. Сеть, пользователь, монтирование, IPC, uname. Большинство контейнерных инструментов, построенных на них (есть несколько вариантов), навязывают свои собственные идеи о том, как все должно работать; Docker — это не только chroot. Вам может не понравиться, как Docker работает с образами или сетевыми функциями.
Однако можно использовать пространства имен Linux и без того, что вы называете контейнером.Страница Википедии о пространствах именесть интересная идея добавить изоляцию процессов в chroot:
SHELL=/bin/sh unshare --fork --pid chroot "${chrootdir}" "$@"
Не включены шаги по созданию этого chroot-окружения и установке в него всего необходимого.
решение2
вы можете объяснить более подробно, какие функции вам нравятся в jails, но которых вам не хватает в контейнерах. Я лично запускаю контейнеры LXC, и у них есть своя личность (debian или ubuntu на хосте Debian). Я могу подключаться к ним по SSH, у них есть собственный стек IP, отделенный от стека IP хоста благодаря сетевым пространствам имен, и я могу устанавливать и запускать в них собственный набор приложений без взаимодействия с приложениями хоста благодаря пространству имен процесса.