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

18

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

Simba
источник

Ответы:

24

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

  • оба служат одной и той же цели: это реализация упрощенной виртуализации, когда вы запускаете приложение в отдельном и изолированном отсеке под одним и тем же ядром, и здесь сходство заканчивается, и начинаются различия
  • Docker - это инструмент, который используется в основном для запуска готовых двоичных изображений, которые можно получить из различных общедоступных или частных репозиториев. Большинство людей используют это таким образом. Меньше людей создают свои собственные и загружают их в эти хранилища.
  • Тюрьмы FreeBSD больше похожи на LXC в Linux: это метод создания вашего контейнера с нуля. Вы создаете его, устанавливаете в него программное обеспечение, и это почти все - его можно рассматривать как FreeBSD внутри FreeBSD. Нет простого способа экспортировать этот контейнер как единое программное обеспечение, как в Docker. Поэтому почти все люди, которые используют FreeBSD, напротив, всегда создают свой собственный фрагмент FreeBSD внутри контейнера с нуля (то есть из установленной базовой системы), устанавливая программное обеспечение из системы портов FreeBSD или из исходного кода. Таким образом, FreeBSD-тюрьмы менее дружественны и имеют более высокую начальную стоимость использования.
  • Так же, как контейнеры LXC являются постоянными, тюрьмы FreeBSD также являются постоянными. Все изменения остаются нетронутыми между ботинками. Как я уже сказал, это всего лишь часть ОС внутри одной и той же ОС (хотя версии программного обеспечения для пользователя могут отличаться, пока ABI не поддерживается в ядре FreeBSD). Это означает, что вы не можете зафиксировать изменения - они фиксируются после их создания.
  • Из всего вышеперечисленного очевидно, что контейнеры FreeBSD не могут иметь свой подобный уровень оркестровки, как это делает Docker: нет публикации портов, нет томов, нет ссылок или мета-соединений между различными тюрьмами. Только интерфейсы, которые предоставляет сетевая ОС: сетевые сокеты, сокеты Unix, общие точки монтирования.
  • Конечно, нет никаких ограничений относительно того, кто с кем может общаться в тюрьмах FreeBSD, так как в Docker их нет.
  • вы можете запускать собственные образы докеров во FreeBSD, потому что во FreeBSD есть хотя бы частичная поддержка докеров, но, поскольку Linux бесплатен, я настоятельно рекомендую его (и я искренне и очень люблю FreeBSD), потому что они будут работать через совместимость с Linux слой (поставляется с модулем ядра FreeBSD), который предоставляет некоторые известные ограничения.
drookie
источник
Для получения дополнительной информации о докере на FreeBSD. Раньше он работал в тюрьме (представьте себе двойную изоляцию :)), это стало возможным в качестве порта основным разработчиком FreeNAS, так как они хотели использовать его в этом дистрибутиве. Вот одна статья от них, рассказывающая об этом, и старая вики-страница для этого . С тех пор они прекратили поддерживать это, и это, кажется, больше не работает. Подробнее следовать в следующем комментарии.
Vrakfall
Вот последнее на форуме сообщение о состоянии Докера во FreeBSD . Реквизит Фишфри там, чтобы получить информацию, которую я сюда закинул. Тем не менее можно использовать докер во FreeBSD, запустив его в виртуализированном Linux (bhyve, virtualbox и т. Д.) И используя для подключения к нему только клиентский порт , который все еще поддерживается и работает. В конце концов, boot2docker изначально был создан для использования Docker таким образом на MacOS.
Vrakfall
И мы знаем, что MacOS - это (постыдный, кашель , это мой немного упрямый) порт BSD . Но все это, конечно, только для среды разработки и никоим образом не может быть использовано в производстве. Это для тех, кто хочет продолжать работать над FreeBSD и иметь возможность разрабатывать Docker для своей работы / хобби / чего угодно.
Vrakfall
Да, и я забыл сказать, но вы упомянули об этом, старый docker-freebsdпорт действительно использовал Linuxulator FreeBSD .
Vrakfall
Я не просто хочу запускать публичные образы. Например, если я не хочу тратить бесчисленные часы на изучение безопасности, я подхожу к dockerhub и пишу « hardened »: hub.docker.com/search?q=hardened&type=image и запускаю что-то оттуда. Это значительно повышает производительность по сравнению с созданием моего собственного контейнера FreeBSD с нуля, не будучи экспертом по безопасности. Но если у вас есть альтернативное, такое же быстрое решение, пожалуйста, поделитесь! :-)
inf3rno