ANZEIGE

Docker auf dem Raspberry Pi installieren

Es soll heute um die Installation von Docker auf dem Raspberry Pi und die Erklärung, was Docker eigentlich ist, gehen. Docker ist eine tolle Sache, wenn man mehrere Systeme wie bspw. FHEM, NodeRed oder MQTT auf einem Raspberry Pi in gleichzeitig laufen lassen möchte.

Docker ist ein System, welche es ermöglicht, mehrere Systeme in verschiedenen Dockern laufen zu lassen. Was bedeutet das genau? Man kann es am Besten so vorstellen, dass jedes System in einem eigenen Container läuft, inklusive aller Abhängigkeiten die für den Betrieb von Nöten sind. Das hat den Vorteil, dass man bei Änderungen am System keine Angst haben muss, wenn es nicht mehr startet, sondern man kann einfach den vorher duplizierten Container ganz normal weiter nutzen. Ebenso ist es möglich, dass auch unterschiedliche System in jeweils einem eigenen Container laufen. So findet bspw. auch FHEM und NodeRed auf einem Raspberry Pi platz und läuft separat in zwei Dockern. Auch hier ist besteht dann der Vorteil, wenn FHEM aus irgendeinem Grund abstürzt, NodeRed ganz normal weiter läuft. Wie du siehst, die Vorteile sind schon recht groß, Docker zu nutzen. Ich selbst bin auch erst vor kurzem auf das Thema Docker gestoßen, sodass ich mich auch noch weiter einarbeiten muss. Es gibt nämlich die Nachteil, dass viele Images von auf dem DockerHub nicht für den Raspberry Pi ausgelegt sind, sodass nicht jedes System von dort Plug-and-Play lauffähig ist. Spätere dazu näheres.

Grundsystem installieren

Der Ein- oder Andere mag das Prozedere bereits kennen: Zu Anfang wird ein leeres Betriebssystem benötigt. Auch für den Installation von Docker wird Raspbian Stretch Light verwendet.

Direktdownload hier

Nach dem Download wird die ZIP-Datei entpackt und muss nun noch auf die SD-Karte des Raspberry’s kopiert werden. Hierfür nutze ich einen USB Kartenleser.

Wenn eine gebrauchte SD-Karte verwendet wird, vorher bitte mit dem SD Card Formatter die Karte formatieren, da es ansonsten zu Problemen führen kann. Dadurch ist es möglich, dass der Raspberry im schlimmsten Fall nicht bootet.

Letzte Aktualisierung am 19.03.2024 um 09:30 Uhr | Werbung | Bilder: Amazon Product Advertising API

Windows-Nutzer verwenden hierfür am besten den Win32DiskImager.
Hier geht es zum Direktdownload.

  1. Die heruntergeladene Image im Feld Image File auswählen,
  2. dann unter Device die MicroSDHC-Karte auswählen.
  3. Achtung: Der gesamt Inhalt auf der Speicherkarte wird gelöscht, sobald du auf Write klickst.
  4. Nach einer kurzen Wartezeit ist der Vorgang abgeschlossen. Windows möchte danach meist den Datenträger formatieren, da er nicht mehr für Windows lesbar ist. Dies sollte natürlich vermieden werden.

Für die Mac-User empfehle ich für den Flash-Vorgang den Pi Filler.
Hier geht es wieder zum Direktdownload.

Wichtig!
Wenn der Flash-Vorgang beendet ist, muss noch der SSH-Zugang aktiviert werden. Bei der aktuellen Version „Raspbian Stretch“ ist dieser standardmäßig deaktiviert.
Also die SD-Karte im Explorer öffnen (Ordner „boot“) und diese Schritte ausführen:

  1. Auf oberster Ebene -> Rechtsklick – Neu – Textdatei
  2. Die Textdatei wird „ssh“ (ohne Anführungszeichen) benannt und ohne Dateiendung gespeichert!

Hier gibt es diese fertige Datei (entpacken!): SSH Datei (10912 Downloads)

Ebenso besteht die Möglichkeit schon vorab den WLAN Zugang zu konfigurieren.

Hierfür wird eine Datei namens „wpa_supplicant.conf“ in der Boot-Partition angelegt. Diese hat folgenden Inhalt:

country=DE 
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
       ssid="WLAN-NAME"
       psk="Passwort"
       key_mgmt=WPA-PSK
}

SSID und PSK muss mit den eigenen Werten ersetzt werden.

Eine fertige Datei gibt es natürlich ebenfalls hier bei uns zum Download:
wpa_supplicant conf (8391 Downloads)

Danach kann der Raspberry Pi mit Strom versorgt werden. Falls der WLAN Zugang nicht konfiguriert wurde, muss zusätzlich ein Netzwerkkabel angeschlossen werden.

Raspberry Pi in Betrieb nehmen / Ermittlung der IP

Nun kann die Speicherkarte in den Raspberry Pi gesteckt werden, die Stromversorgung, sowie das Netzwerkkabel kann ebenfalls an dieser Stelle angeschlossen werden.

Als nächstes benötigen wir die IP-Adresse des Raspberrys. Diese suchen wir uns in unserem Router heraus. I.d.R. sollte der Zugriff (Fritzbox vorausgesetzt) über „fritz.box“ funktionieren. Alternativ über die IP „169.254.1.1„, ebenfalls Fritzbox vorausgesetzt. Bei anderen Routern muss in der Anleitung nachgelesen werden, wie man auf die Weboberfläche kommt.
Als Name sollte „raspberrypi“ bei euch stehen.
Mit der derzeit aktuellen Firmware-Version sieht diese Übersicht bei mir so aus:

Nun muss noch dafür sorgen, dass der Router dem Raspberry Pi immer die gleich IP-Adresse gibt, damit diese sich bei einem Neustart o.ä. nicht ändert. Ansonsten wäre FHEM immer unter einer anderen IP-Adresse aufzurufen, was auf doch recht unpraktikabel ist. Dazu wird in der FritzBox der Haken „Diesem Netzwerkgerät immer die gleiche IPv4-Adresse zuweisen“ gesetzt.

Bei mir lautet die IP-Adresse also 10.0.0.30.

AVM FRITZ!Box 7490 WLAN AC + N Router (VDSL/ADSL,...
Angebot AVM FRITZ!Box 7590 WLAN AC+N Router...

Letzte Aktualisierung am 19.03.2024 um 07:30 Uhr | Werbung | Bilder: Amazon Product Advertising API

SSH-Verbindung zum Raspberry aufbauen

Für Mac
Die Mac-Nutzer können statt PuTTY, die Terminal-App benutzen. Der Login erfolgt mit dem Konsolenbefehl: ssh [email protected]
Nach der Bestätigung durch „Enter“ muss die kommende Abfrage mit „yes“ + „Enter“ bestätigt werden. Kommt der Fehler „Host key verification failed“, muss der Befehl „ssh-keygen -R 10.0.0.30“ eingegeben werden. Nun kann man den Login-Befehl erneut ausführen.
Alle weiteren Schritte sind ab diesem Punkt von Windows auf den Mac übertragbar.

Wir müssen uns nun per SSH auf dem Raspberry einloggen.
Unter Windows mittels dem Programm Putty.
Bei „Host Name (or IP adress)“ muss nun die zuvor ermittelte IP-Adresse (bei mir 10.0.0.30) eingegeben werden und mittels „Open“ die Verbindung hergestellt werden.
PuTTY Login

Im nachfolgend erscheinenden Terminal geben wir ein:
Login as: pi
Password: raspberry
(Beim Eingeben des Passwort sind keine Zeichen sichtbar.)

Nach erfolgreichem Login sollte nachfolgendes Fenster zu sehen:

Bevor es weitergeht, wird das System mit einem sudo apt-get update
und einem sudo apt-get upgrade auf den aktuellen Stand gebracht. Nach einem Neustart geht es dann weiter sudo reboot.

Docker installieren

Das Betriebssystem ist noch vollständig nackt, das macht aber nichts, denn nun installieren wir Docker. Zuvor werden allerdings ein paar Abhängigkeiten installiert. Mit Y bestätigen und schon wird alles installiert.

sudo apt-get install wget git apt-transport-https vim telnet

raspberry pi abhängigkeiten installieren

Danach geht es an die Docker Installation. Die folgenden Befehle nacheinander ausführen.

curl -sSL https://get.docker.com | sh

Docker soll künftig natürlich auch bei jeden Systemneustart gestartet werden.

sudo systemctl enable docker

Und schon kann Docker-Dienst gestartet werden.

sudo systemctl start docker

Damit man die Docker komfortabel über eine Weboberfläche verwalten und installieren kann, wird noch schnell die grafische Oberfläche installiert.

sudo docker run -d -p 9000:9000 --restart always --name portainer -v portainer_data:/data -v /var/run/docker.sock:/var/run/docker.sock portainer/portainer

Danach ist die Oberfläche auf dem Port 9000 aufzurufen. Also z.B. 192.168.178.10:9000

Die Docker Oberfläche

Nachdem Docker nun installiert ist und als Systemdienst automatisch startet, muss man noch Zugangsdaten vergeben. Dazu wird man automatisch beim Aufruf der Oberfläche aufgefordert.

portainer login passwort

Im nächsten Fenster muss man Local auswählen und mit einem Klick auf Connect ist man dann auch schon verbunden.

portainer local connect

Man befindet sich nun im Dashboard. Hier hat man nun die Möglichkeit unter Containers einen neuen anzulegen.

docker container list

Jetzt kann man dem Container einen beliebigen Namen geben und sich das passende Image aus dem Docker Hub heraussuchen. Wichtig: Der Name darf keine Leerzeichen enthalten. Wie zu Anfang bereits erwähnt, muss man nun darauf achten, dass die Images speziell für den Raspberry Pi ausgelegt sind – alle anderen laufen leider nicht. Matthias von haus-automatierung.com hat ein Gesamtpaket geschnürt, welches komfortabel direkt über sein git herunter geladen werden kann. Das beinhaltet dann FHEM, NodeRed, MQTT, MySQL… Schaut dazu bei ihm einfach mal vorbei.

Was man allerdings bedenkenlos direkt aus dem Docker Hub verwenden kann, ist FHEM. Dadurch hat man schon mal die Möglichkeit recht schnell ein FHEM System aufzusetzen und durch die Möglichkeit des klonens die Möglichkeit auch an seinem Live-System mal etwas auszuprobieren. Genau damit fangen wir nun auch an. Nachdem der Container schon einen Namen erhalten hat, muss nun noch das Image fhem/fhem angegeben werden und Publish all exposed ports aktivieren. Nach dem Klick auf Deploy wird das Image von FHEM im Hintergrund heruntergeladen und der Container erzeugt.

mein fhem container docker

Im nächsten Schritt geht der soeben erstellte Container direkt in die Status starting und sollte nach kurzer Wartezeit und einem Klick auf aktualisieren (weiter oben) auf grün und den Status running wechseln. Damit ist es nun schon möglich, die FHEM Installation aufzurufen. Man muss lediglich schauen, auf welchem Port FHEM nun ausgeführt wird.

fhem docker port

Wie hier zu sehen, wird der FHEM Container auf dem port 32768 aufgeführt und ist dementsprechend aufzurufen unter: DEINE-IP:32768
Mit DEINE-IP ist die IP-Adresse der Raspberry Pi gemeint, auf der Docker auch schon läuft.

Anhand dieses Beispiels ist FHEM natürlich nun noch komplett nackt und ungesichert. Hier kannst du nach unserer bereits bestehenden Anleitung vorgehen.

Fazit

Ich habe Docker auch erst vor kurzem für mich entdeckt und stehe selbst noch ziemlich am Anfang. Doch ich möchte euch natürlich nichts vorenthalten und euch so schnell wie möglich davon berichten. Und allein die Tatsache, dass man nicht nur an seinem Live-System FHEM herumexperimentieren muss und somit Angst hat etwas irreparabel zu zerstören, ist Docker eine wirklich tolle Lösung. Der FHEM Container kann so einfach dupliziert werden und man kann alles ausprobieren. Ebenso ist der riesige Vorteil, den ich in Docker sehe, das parallele laufen von Systemen in einem eigenen Container. So nutzt jedes System seine eigenen Ressourcen. Selbst wenn bspw. FHEM abstürzt, könnte NodeRed noch ganz einfach weiter laufen! Wie ich damit noch weiter arbeiten werden und Docker in größerem Umfang nutzen werden, zeigt die Zeit.

Klicke auf einen Stern um eine Bewertung abzugeben!

Durchschnittsbewertung 5 / 5. Bewertungen: 2

Es tut uns leid, dass dieser Beitrag für dich nicht hilfreich war!

Lassen Sie uns diesen Beitrag verbessern!

Wie können wir den Beitrag verbessern?

1 Gedanke zu „Docker auf dem Raspberry Pi installieren“

1 Kommentar

  1. Wie funktioniert denn der Update der fhem-module? Normalerweise kann ich das ja per Telnet oder Webgui machen. Das klappt aber nicht bei einem Container?

Schreibe einen Kommentar

OwnSmartHome.de