Popularna malinka – czyli Raspberry Pi w połączeniu z Dockerem.
Uznałem, że grzechem byłoby o tym nie napisać.
To będzie krótki post. Nie chcę opisywać pełnych możliwości malinki, bo to zwyczajnie mija się z celem. Chcę tylko pokazać pewien fragment możliwości – połączenie z Dockerem.
Instalacja Dockera na Rasbperry Pi
Korzystamy standardowo z skryptu get-docker.sh
curl -sSL https://get.docker.com | sh
Dodanie użytkownika Pi do grupy docker
Jeśli chcemy, by Docker działał bezpośrednio z poziomu domyślnego użytkownika Pi
, dodajemy go do grupy docker.
sudo usermod -aG docker pi
Bez tego za każdym razem musielibyśmy używać sudo
. Przykład:
sudo docker run <image>
Restart Rasppery Pi
Najprościej zrestartować naszą malinkę, aby zmiany w grupie docker się „zpropagowały”.
Test – czy Docker działa na naszym Raspberry Pi
Czas na testy. Przykładowe polecenie, którym sprawdzisz, czy Docker dział poprawnie na na malince
docker version
Instalacja docker-compose na Raspberry Pi
Żeby uprościć sobie uruchamianie (wielu) kontenerów, aż prosi się, by zainstalować docker-compose
. By to było możliwe, musimy najpierw zainstalować kilka zależności.
Instalacja wymaganych zależności
sudo apt-get install -y libffi-dev libssl-dev sudo apt-get install -y python3 python3-pip sudo apt-get remove python-configparser
Instalacja docker-compose na Raspberry
Finalnie, możemy skrozystać z pip
i zainstalować docker-compose.
sudo pip3 -v install docker-compose
Test – czy docker-compose działa na Raspberry Pi
docker-compose version docker-compose version 1.27.4, build 40524192 docker-py version: 4.3.1 CPython version: 3.7.4 OpenSSL version: OpenSSL 1.1.1c 28 May 2019
Możliwości – server Minecrafta na Raspberry Pi w Dockerze
„Damian – po co mi to?”
Odpowiadam – dla pokazania możliwości, a być może „zabawy”. Warto wiedzieć, co można osiągnąć – mając malinkę i zainstalowanego Dockera. W podobny sposób możesz postawić sobie np. API stworzone w ulubionym języku programowania, czy cokolwiek innego, co potrzebujesz.
Na Docker Hubie znajdziemy gotowy obraz dla servera Minecrafta. Wystarczy go zatem użyć : -)
Przykładowy docker-compose.yml
version: '3.7' services: minecraft: image: itzg/minecraft-server:multiarch ports: - "25565:25565" environment: EULA: "TRUE" deploy: resources: limits: memory: 1.5G
To wszystko. Wystarczy teraz docker-compose up
(opcjonalnie z argumentem -d
) i GOTOWE.
Server powinien działać na porcie 25565.
Inne przykłady zastosowania Dockera i Raspberry Pi
Oczywiście przykładów zastosowania Docker i Raspberry jest MASA. Poniżej zebrałem najbardziej – moim zdaniem – ciekawe przykłady, które mogą Cię zainteresować.
- PiHole – zabezpiecz swoją prywatną sieć przed reklamami na poziomie sieciowym (zamiast instalowania Adblocka). A tutaj znajdziesz sposób na instalację z wykorzystaniem Dockera
- n8n – darmowa automatyzacja życia. Narzędzie jest alternatywą dla popularnego Zapiera, czy IFFT. Oba te narzędzia dostępne są w chmurze i niestety są płatne. Z kolei – n8n można postawić samemu, np. na malince i korzystać „za darmo”.
- Plex – centrum multimedialne w domowych warunkach. A tutaj instrukcja – jak to zainstalować z poziomu Dockera.
- RetroPie – domowa machina umożliwiająca zabawę z ulubionymi grami Retro (np. Pacman, Duck Hunt czy Tony Hawk). Trudno znaleźć sprawdzony sposób na uruchomienie RetroPie z poziomu Dockera. Znalazłem jednak coś takiego (nie gwarantuję, że działa)
- WebApi w dowolnym języku programowania – z uwagi na moją naleciałość do do świata .NET, podrzuciłem taki, a nie inny przykład. Możliwości są zdecydowanie większe 🙂 Wystarczy znaleźć obraz bazowy wspierający architekturę ARM – dla języka/technologii, którą znasz najlepiej.
- OMV – czyli mini-serwer NAS – jeżeli nie chcesz kupować drogiego sprzętu i mieć swojego NAS’a – warto rozważyć tę opcję. Niestety ciężko znaleźć sprawdzony przykład jak postawić OMV z pomocą Dockera. Zostawiam bez linka, bo nawet bez Dockera jest to ciekawe rozwiązanie dla posiadaczy malinek 🎈.
Podsumowanie
Jak widzisz instalacja Dockera na Raspberry Pi nie jest trudna. Po zainstalowaniu możemy dla „funu” postawić sobie np. server Minecrafta, albo… na przykład self-hosted Docker Registry.
Możliwości jest naprawdę wiele. Zarówno one, jak i cena Raspberry Pi może zachęcać do domowych eksperymentów.
Jeśli znasz jeszcze jakieś ciekawe przykłady zastosowania malinki w połączeniu z Dockerem – koniecznie podziel się w komentarzu. Wybrane pomysły dorzucę do powyższej listy. Dzięki! 🙂