Instancje JBS lub Docker FreeBSD [zamknięte]

17

Jakie są główne różnice między więzieniami na FreeBSD a Dockerem na Linuxie? Czy jedno jest znacznie bardziej bezpieczne lub wydajniejsze od drugiego? Więzienia są znacznie starsze niż instancje Dockera, więc sam kod można uznać za bezpieczniejszy. Ale Jails nigdy nie „złapał”, więc może nie są tak dobre jak instancje Dockera? A może tylko dlatego, że Linux jest o wiele bardziej popularny niż FreeBSD?

Simba
źródło

Odpowiedzi:

24

Zajmę się niektórymi aspektami więzień FreeBSD i Linux Docker, ich podobieństwem i różnicami.

  • oba służą temu samemu celowi: jest to implementacja lekkiej wirtualizacji, gdy uruchamiasz aplikację w oddzielnym i izolowanym przedziale w tym samym jądrze, a tutaj kończą się podobieństwa i zaczynają się różnice
  • Docker to narzędzie używane głównie do uruchamiania przygotowanych obrazów binarnych, które można uzyskać z różnych publicznych lub prywatnych repozytoriów. Większość ludzi używa go w ten sposób. Mniej osób buduje własne i ładuje je następnie do tych repozytoriów.
  • Więzienia FreeBSD są bardziej podobne do LXC w Linuksie: jest to metoda tworzenia twojego kontenera od zera. Tworzysz go, instalujesz w nim oprogramowanie, i to właściwie wszystko - może być traktowane jako FreeBSD w FreeBSD. Nie ma łatwego sposobu na wyeksportowanie tego kontenera jako pojedynczego oprogramowania, takiego jak w Docker. Tak więc prawie wszyscy ludzie, którzy używają FreeBSD, au contraire, zawsze budują własny kawałek FreeBSD od początku w kontenerze (tj. Z zainstalowanego systemu podstawowego), instalując oprogramowanie z systemu portów FreeBSD lub ze źródła. Więzienia FreeBSD są zatem mniej przyjazne i mają wyższy koszt początkowego użytkowania.
  • podobnie jak kontenery LXC są trwałe, więzienia FreeBSD również są trwałe. Wszystkie zmiany pozostają nienaruszone między butami. Jak powiedziałem, jest to tylko część systemu operacyjnego w tym samym systemie operacyjnym (chociaż wersje oprogramowania dla użytkowników mogą się różnić, dopóki ABI nie zostanie utrzymane w jądrze FreeBSD). Oznacza to, że nie można zatwierdzić zmian - są one zatwierdzane po ich utworzeniu.
  • z powyższego wynika, że ​​kontenery FreeBSD nie mogą mieć podobnej warstwy aranżacyjnej, jak Docker: nie ma publikacji portów, nie ma woluminów, nie ma łączy ani żadnych meta-połączeń między różnymi więzieniami. Tylko interfejsy sieciowe systemu operacyjnego zapewniają: gniazda sieciowe, gniazda unixowe, wspólne punkty montowania.
  • oczywiście nie ma ograniczeń co do tego, kto może się z kim komunikować w więzieniach FreeBSD, ponieważ w Dockerze nie ma takich ograniczeń.
  • możesz uruchamiać natywne obrazy dokerów w FreeBSD, ponieważ jest przynajmniej częściowa obsługa dokerów w FreeBSD, ale ponieważ Linux jest darmowy, zdecydowanie odradzam (i naprawdę kocham FreeBSD), ponieważ będą one uruchamiane przez kompatybilność z Linuksem warstwa (dostarczana z modułem jądra FreeBSD), która zapewnia pewne znane ograniczenia.
Drookie
źródło
Aby uzyskać więcej informacji o oknie dokowanym we FreeBSD. Kiedyś działał w więzieniu (wyobraź sobie podwójną izolację :)), stało się możliwe jako port przez głównego dewelopera FreeNAS, ponieważ chcieli go używać w tej dystrybucji. Oto jeden z ich artykułów na ten temat i stara strona wiki na ten temat . Od tego czasu przestali go utrzymywać i wydaje się, że już nie działa. Więcej do naśladowania w następnym komentarzu.
Vrakfall,
Oto ostatni post na forum mówiący o stanie Dockera we FreeBSD . Rekwizyty dla Phishfry tam dla niektórych informacji, które tu upuściłem. Nadal możliwe jest użycie dokera na FreeBSD poprzez uruchomienie go w zwirtualizowanym Linuksie (bhyve, virtualbox itp.) I użycie portu tylko dla klienta , który jest nadal utrzymywany i działa, aby się z nim połączyć. Po tym wszystkim boot2docker został pierwotnie stworzony do używania Dockera w ten sposób na MacOS.
Vrakfall,
I wiemy, że MacOS to (haniebny, kaszel , to mój zdaniem nieco bit) port BSD . Wszystko to oczywiście dotyczy tylko środowiska programistycznego i nie można go w żaden sposób wykorzystać w produkcji. To jest dla tych, którzy chcą kontynuować pracę nad FreeBSD i być w stanie rozwijać dokerów do swojej pracy / hobby / cokolwiek.
Vrakfall,
No i zapomniałem powiedzieć, ale wspomniałeś o tym, stary docker-freebsdport rzeczywiście używał Linuxulatora FreeBSD .
Vrakfall,
Nie chodzi tylko o to, że chcę uruchamiać zdjęcia publiczne. Na przykład, jeśli nie chcę spędzać niezliczonych godzin na nauce bezpieczeństwa, idę do dockerhub i piszę „hardened”: hub.docker.com/search?q=hardened&type=image i stamtąd coś uruchamiam. To znacznie zwiększa wydajność w porównaniu do budowania własnego kontenera FreeBSD od zera bez bycia ekspertem od bezpieczeństwa. Ale jeśli masz alternatywne podobnie szybkie rozwiązanie, proszę podziel się! :-)
inf3rno,