Jak na razie docker nie jest obsługiwany przez system operacyjny FreeBSD, więc nie ma możliwości używania dockera we FreeBSD, przynajmniej natywnie. Podjęto kilka prób zbudowania źródła dockera dla FreeBSD, ale żadna z tych, które udało mi się znaleźć, nie przyniosła żadnych znaczących rezultatów. Jest tak prawdopodobnie dlatego, że FreeBSD brakuje niektórych funkcji Linuksa, takich jak przestrzeń nazw i cgroups, które nie są jeszcze częścią jądra FreeBSD.
Pozostaje nam więc tylko jedna opcja: użycie maszyny wirtualnej. W tym samouczku użyjemy virtualboxa, aby uruchomić maszynę wirtualną z systemem Linux we FreeBSD i użyć w nim dockera.
Krok 1: Zainstaluj klienta docker i maszynę wirtualną we FreeBSD
Aby zainstalować zarówno klienta dockera, jak i maszynę wirtualną wraz z wirtualnym polem w jednym poleceniu, wpisz następujące polecenie w powłoce i naciśnij enter:
$ sudo pkg install docker docker-machine virtualbox-ose
Powodem, dla którego konfigurujemy docker-machine z wirtualnym pudełkiem, jest to, że ułatwia zarządzanie hostami Docker. Dzięki docker-maszynie możesz tworzyć serwery i instalować docker na każdym z nich, a także konfigurować każdy z osobna.
Krok 2: Załaduj moduł jądra vboxdrv
Po zainstalowaniu virtualboxa w systemie, załaduj moduł jądra vboxdrv. Aby to zrobić i dodać swoje konto użytkownika do grupy vboxusers, musisz uruchomić następujące polecenie:
$ sudo pw groupmod vboxuser -m
Po wykonaniu polecenia będziesz mógł używać vbox. Możesz korzystać z maszyn wirtualnych po ponownym uruchomieniu systemu.
Krok 3: Tworzenie hostów VirtualBox
Użyj poniższego polecenia, aby utworzyć hosta Virtualbox:
$ docker-machine create -d virtualbox default
Aby zobaczyć każdy host obecny w twoim systemie.
$ docker-maszyna ls
Po zainstalowaniu nowego wirtualnego hosta skrzynki powinniśmy ustawić parametry maszyny wirtualnej, aby komunikowały się z klientem docker. Użyj poniższego polecenia:
$ eval "$(docker-machine env default)"
Następnie skopiuj i wklej to polecenie do .bashrc/.zshrc i wszystko gotowe do korzystania z dockera we FreeBSD.
Po co przechodzić przez te wszystkie kłopoty??
Z pewnością musi istnieć prostszy sposób na uruchomienie dockera, który nie wymaga użycia maszyn wirtualnych?
Dobrze, Nie. Jak dotąd jest to jedyny sposób na uruchomienie dockera w systemie FreeBSD, ponieważ jak wspomniano wcześniej, FreeBSD nie obsługuje niektórych elementów, które są kluczowe dla działania dockera.
Dlaczego więc nie użyć alternatywy dla docker? Słyszałem, że rkt jest znacznie lepszą alternatywą dla dockera i działa na FreeBSD!
Jasne, istnieje wiele alternatyw FreeBSD dla dockera, które są lepsze, jeśli nie równie dobre. Chodzi o to, że większość ludzi zna docker, a dla niektórych użytkowników całkowite przestawienie platformy jest raczej zniechęcające. Innym powodem jest brak materiałów instruktażowych dla rkt, więc nowicjusze w oprogramowaniu do konteneryzacji wybraliby docker zamiast jego alternatyw FreeBSD.
Wniosek
To wszystko w tym samouczku. Mamy nadzieję, że teraz możesz używać dockera we FreeBSD z tym pudełkiem.