Назад | Перейти на главную страницу

Экземпляры FreeBSD Jails или Docker

В чем основные различия между тюрьмами во FreeBSD и Docker в Linux? Один из них значительно безопаснее или производительнее другого? Тюрьмы намного старше экземпляров Docker, поэтому сам код можно считать более безопасным. Но Jails так и не «прижились», так что, может быть, они не так хороши, как экземпляры Docker? Или это просто потому, что Linux намного популярнее FreeBSD?

Я расскажу о некоторых аспектах джейлов FreeBSD и Linux Docker, о том, чем они похожи и чем отличаются.

  • оба служат одной цели: это реализация облегченной виртуализации, когда вы запускаете приложение в отдельном и изолированном отсеке под одним и тем же ядром, и здесь сходство заканчивается, и начинаются различия.
  • Docker - это инструмент, который используется в основном для запуска подготовленных двоичных образов, которые можно получить из различных публичных или частных репозиториев. Большинство людей используют это таким образом. Меньшее количество людей создают свои собственные и загружают их в эти репозитории.
  • Тюрьмы FreeBSD больше похожи на LXC в Linux: это метод создания вашего контейнера с нуля. Вы создаете его, устанавливаете в него программное обеспечение, и это почти все - внутри FreeBSD его можно рассматривать как FreeBSD. Нет простого способа экспортировать этот контейнер как единое программное обеспечение, как в Docker. Таким образом, почти все люди, которые используют FreeBSD, au contraire, всегда создают свою собственную часть FreeBSD внутри контейнера с нуля (то есть из установленной базовой системы), устанавливая программное обеспечение из системы портов FreeBSD или из исходников. Таким образом, тюрьмы FreeBSD менее дружелюбны и имеют более высокую начальную стоимость использования.
  • Так же, как контейнеры LXC являются постоянными, тюрьмы FreeBSD также являются постоянными. Все изменения остаются неизменными между ботинками. Как я уже сказал, это просто часть ОС внутри одной и той же ОС (хотя версии программного обеспечения пользовательского уровня могут отличаться до тех пор, пока ABI не будет поддерживаться в ядре FreeBSD). Это означает, что вы не можете совершить изменения - они фиксируются сразу после создания.
  • из всего вышеперечисленного очевидно, почему контейнеры FreeBSD не могут иметь аналогичный уровень оркестрации, как это делает Docker: нет публикации портов, нет томов, нет ссылок или каких-либо мета-соединений между разными тюрьмами. Только интерфейсы, которые предоставляет сетевая ОС: сетевые сокеты, сокеты unix, общие точки монтирования.
  • Конечно, нет никаких ограничений относительно того, кто может с кем общаться внутри тюрем FreeBSD, поскольку их нет в Docker.
  • вы можете запускать собственные образы докеров во FreeBSD, потому что во FreeBSD есть хотя бы частичная поддержка докеров, но, поскольку Linux является бесплатным, я настоятельно не рекомендую этого (и я искренне и глубоко люблю FreeBSD), потому что они будут запускаться через совместимость с Linux уровень (поставляется с модулем ядра FreeBSD), который предоставляет некоторые известные ограничения.