Nachdem die ersten Teile sich um die Vorbereitung drehten, geht es jetzt mit der Installation von Docker weiter. Docker ist ein Container-System – böse gesagt eine „virtuelle Maschine für Arme“. Natürlich ist das ein wenig übertrieben. Letztendlich nutzen die Container die Ressourcen des Betriebssystems. Es ist also nicht möglich, eine native Windows-Anwendung in einem Docker-Container, der auf einem Raspberry Pi gehostet wird, auszuführen.
Der Vorteil der Container ist allerdings, dass verschiedene Anwendungen komplett autark voneinander ausgeführt werden können. Der Klassiker war früher unter Windows die als „DLL Hell“ bekannte Situation: Anwendung A benötigt eine DLL „coolStuff.dll“ in Version 1.1.0; Anwendung B benötigt dieselbe DLL in der Version 1.1.12. Leider ist ein Funktionsaufruf diesem Versions-Update zum Opfer gefallen, den Anwendung A benötigt. Ergo funktioniert Anwendung A nicht mehr…
So etwas ist bei Containern nicht möglich – jeder Container bringt das mit, was er braucht.
Ein weiterer Vorteil ist, dass sich das System relativ leicht zurücksetzen lässt: Wenn ein Container „querschießt“, kann er einfach beendet werden, und die Ruhe kehrt wieder ein.
Die Idee, die hinter unserem Smart Home steckt, ist also folgende: Wir installieren Docker und lassen Home Assistant als Container laufen. Also Home Assistant und noch ein bisschen mehr, aber fangen wir erst mal an.
Los geht’s mit der Installation einiger weniger Pakete, die für Docker vielleicht nicht zwingend erforderlich, aber doch hilfreich sind:
sudo apt-get install jq apparmor network-manager
Dann folgt die Installation von Docker. Viele Anwendungen lassen sich über den Paketmanager der Distribution installieren; mittlerweile stellen aber auch einige Entwickler Installationsskripte bereit, die nur noch ausgeführt werden müssen und den Rest erledigen. Genauso ist es auch hier: Wir laden uns das Installationsskript herunter und führen es aus:
curl -fsSL https://get.docker.com -o get-docker.sh sudo sh get-docker.sh
[singlepic id=342 w=800]
Außerdem erlauben wir noch dem Benutzer pi, Docker-Container zu verwenden (auch wenn das ein Sicherheitsrisiko sein kann, wie die Warnung ganz unten zeigt:
usermod -aG docker pi
Danach ist (bei mir) ein Reboot fällig: Ich habe den Rechner nicht in „ha“ umbenannt und hole das jetzt nach. raspi-config fragt mich nach dem Umbenennen, ob ich rebooten will, und da das Hinzufügen von pi zur Docker-Gruppe sowieso erfordert, dass ich mich ab- und wieder anmelde, kann ich den Rechner auch gleich einmal neu starten. Bei den folgenden Screenshots sollte dann also der richtige Rechnername angezeigt werden.
Im nächsten Teil installieren wir unseren ersten Container, bevor es dann mit Home Assistant losgeht.