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! 🙂