ANZEIGE

Mit Docker flexibel mehrere Systeme parallel nutzen

Mit Docker Systeme flexibel nutzen
Foto: Ingo Füchtenbusch / pixelio.de

Bereits in einem vergangenen Blogpost habe ich die Installation von Docker angeschnitten. Seitdem ist einige Zeit vergangen und ich habe Docker nun endlich auch für mich entdeckt. Welche Vorteile es hingegen zu einer einzelnen Installation mit dem Raspberry OS bringt, erfährst du in diesem Post.

Was ist Docker überhaupt?

Docker ist eine eigenständige Software, die nicht nur auf dem Raspberry Pi läuft, sondern auch auf Windows, MacOS und Linux. Hingegen zu einer simplen Installation mit dem Raspberry Pi OS bietet Docker die Trennung und Verwaltung verschiedener Images durch sogenannte Container. Jeder dieser Container agiert eigenständig für sich und nutzt die benötigten Abhängigkeiten auch nur für sich. So ist es kein Problem, wenn man eine FHEM Installation zerstört, der bspw. parallel laufende ioBroker wird hierdurch nicht berührt und geschädigt.

Man unterscheidet hauptsächlich zwischen Images, Containern und Volumes. Das Image ist das Abbild der Software die installiert werden soll wie z.B. FHEM. Dieses Image wird dann in auf ein definiertes Volume geschrieben. Gestartet wird das Ganze dann in einem Container, der auf das vorgegebene Volume zugreift. Durch diese Struktur ist es möglich, einen Container auch einfach zu löschen, ohne dass das Volume (das die Daten enthält) zerstört wird.

Meiner Meinung nach bringt Docker den wirklich größten Vorteil, dass man auch mal eine Testumgebung installieren kann und mit der FHEM Installation machen kann, was man will. Parallel läuft ja die Live Instanz, die nicht beschädigt werden kann. So ist man ein ganzes Stück sicherer beim Ausprobieren neuer Funktionen.

Die Installation von Docker auf dem Raspberry Pi

Damit auch du die Vorteile von Docker nutzen kannst, erkläre ich an dieser Stelle nochmal Schritt für Schritt die Installation und Inbetriebnahme von Docker. Alles was du hierfür benötigst ist folgendes:

Angebot Raspberry Pi 4 Modell B; 4 GB, ARM-Cortex-A72 4 x,...
Angebot Raspberry 4596 Pi - offizielles Netzteil für...
Angebot SanDisk Extreme 32 GB microSDHC Memory Card + SD...
iUniker Raspberry Pi 4 Gehäuse, Raspberry Pi 4...

Letzte Aktualisierung am 2.05.2024 um 05:13 Uhr | Werbung | Bilder: Amazon Product Advertising API

Schritt 1 – Image auf Speicherkarte flashen

Zu Beginn wird wie gewohnt das Raspberry Pi OS (ehemals Raspbian) auf die Speicherkarte geflasht. Hier hat man es einfacherer als zuvor, durch den Raspberry Pi Imager. Mit diesem kann man das benötigte Betriebssystem auswählen und direkt auf die Speicherkarte schreiben. Es funktioniert natürlich auch noch der alt bewährte Weg.

raspberry pi imager

Es wird in unserem Fall einfach die Lite Version benötigt. Dies ist unter Raspberry Pi OS (other) zu finden.

raspberry pi os lite

Nach dem erfolgreichen Schreiben erscheint folgende Meldung. Die Speicherkarte wurde nun automatisch ausgeworfen. Diese muss an dieser Stelle aus- und wieder eingesteckt werden, denn es müssen noch zwei Dateien auf die Speicherkarte manuell geschrieben werden.

raspberry pi os imager ready

Es fehlt noch eine leere Datei mit dem Namen „ssh“ damit der SSH-Dienst aktiviert wird. Ebenfalls, sofern gewünscht, kann noch die wpa_supplicant.conf Datei angelegt werden. In dieser wird die WLAN-Verbindung konfiguriert und man erspart sich so das Anschließen per Netzwerkkabel. Beide Dateien kommen direkt in das boot-Verzeichnis der Speicherkarte. Die Dateien gibt es hier als Download:

SSH Datei (11129 Downloads )

Datei muss entpackt werden!

wpa_supplicant conf (8611 Downloads )

Entpacken und WLAN Name und Passwort muss mit den eigenen Daten ersetzt werden!

Sind beide Dateien auf die Speicherkarte kopiert, kann diese nun ausgeworfen, in den Raspberry Pi eingesteckt und der Raspberry Pi mit Strom versorgt und somit gebootet werden.

Schritt 2 – Grundeinstellungen Raspberry Pi OS

Bevor nun Docker installiert werden kann, sind ein paar Grundeinstellungen notwendig. Um auf den Raspberry Pi auch ohne Display und Maus/Tastatur anschließen zu müssen, verbinden wir uns per SSH.

Dazu nutzt man unter Windows z.B. Putty oder unter MacOS kann man direkt das Terminal nutzen.

In Putty wird nun die IP Adresse des Raspberry Pi angegeben (diese einfach in der FritzBox o.ä. Router nachsehen) und mit einem Klick auf „Open“ wird die Verbindung hergestellt.

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.
PuTTY Login

Im nachfolgend erscheinenden Terminalfenster muss folgendes eingegeben werden:
Login as: pi
Password: raspberry
(Beim Eingeben des Passwort sind keine Zeichen sichtbar.)

Nach erfolgreichem Login sollte folgendes Fenster zu sehen sein:

Damit die Pakete aus der Image-Datei nun auf den aktuellen Stand gebracht werden, müssen nun noch die nachfolgenden Kommandos abgesetzt werden.

sudo apt-get update && sudo apt-get upgrade -y

Im Anschluss wird der Raspberry noch entsprechend konfiguriert. Diese geschieht mit dem Befehl

sudo raspi-config

Es erscheint nun eine weitere Oberfläche. Als erstes muss unter Punkt 7 “Advanced Options” die Option A1 ausgewählt werden, damit der Raspberry Pi den vollen Speicherplatz der Speicherkarte nutzen kann.

raspberry pi expand filesystem

Danach wird unter dem Punkt 4 “Localisation Options” und dort unter Punk I1 die “Locale” auf “de_DE.UTF-8 UTF-8” geändert werden. Dazu wird der Punkt ausgewählt, mit der Leertaste bestätigt (ein Sternchen wird sichtbar) und mit der TAB Taste gelangt man dann auf “Ok” um es abzuspeichern.

raspberry pi change locale

Danach wird die Auswahl “de_DE.UTF-8” mit drücken von “Enter” bestätigt.

raspberry pi change locale 2

Ebenfalls sollte die korrekte Timezone gesetzt werden. Dazu unter dem Punkt 4 auf den Unterpunkt I2 und hier die Zeitzone auf “Europe -> Berlin” setzen.

raspberry pi change timezone

Ein weiterer, wenn nicht sogar wichtigster Punkt ist, Passwort ändern!

Dies ist einfach über den Menüpunkt 1 zu erledigen. Das neue Passwort wird danach zweimal hintereinander eingegeben und ist ab dem nächsten Login gültig.

raspberry pi change password

Damit sind die Grundlegenden Einstellungen abgeschlossen und der Raspberry Pi wird nun noch einmal neugestartet.

raspberry pi reboot

Es kann nun Docker auf der Raspberry Pi installiert und konfiguriert werden.

Schritt 3 – Docker auf dem Raspberry Pi 4 installieren

Um nun Docker so einfach wie möglich zu installieren, genügt es, wenn in das Terminalfenster folgender Befehl eingegeben wird.

sudo curl -fsSL https://get.docker.com | sh

Gerade für Einsteiger wirklich schön, da dieses Skript (im übrigen ist dies direkt von Docker selbst) fast vollständig eigenständig durchläuft und alle benötigten Abhängigkeiten etc. automatisch installiert. Das dauert nun eine ganze Weile.

raspberry pi docker installation finished
Installation erfolgreich

Nach der Installation kann die Version von Docker kontrolliert werden.

sudo docker version
docker version raspberry pi
Docker Versions Anzeige

Im Anschluss empfiehlt es sich noch, Portainer zu installieren. Damit hat man die Möglichkeit die Docker Installation per Webinterface komfortabel zu verwalten. Auch das ist nicht schwer, die aktuelle Version wird mit folgenden Befehl heruntergeladen

sudo docker pull portainer/portainer-ce

Im Anschluss wird Portainer (in einem Container) gestartet.

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

Danach ist die Portainer Oberfäche über http://IP-Adresse-des-Raspberry-Pi:9000 erreichbar. Vor der Verwendung müssen noch Zugangsdaten vergeben werden.

portainer start page username password

Im nächsten Step wird das lokale Docker Management ausgewählt und mit einem Klick auf Connect wird die Verbindung zur lokalen Docker Installation hergestellt.

locale docker environment

Das Portainer Dashboard ist somit einsatzbereit.

Systeme installieren

FHEM installieren

Um FHEM in Docker verwenden zu können, ist nicht viel notwendig. Einzig und allein der folgende Befehl wird in das Terminalfenster eingegeben und kurze Zeit später läuft FHEM.

sudo docker run -d --name fhem -p 8083:8083 -v fhem:/opt/fhem fhem/fhem

Der Port 8083 (Standard WEB Port) ist damit bereits gemappt. Somit kann nach der Installation die FHEM Installation unter Raspberry-Pi-IP-Adresse:8083 aufgerufen werden. Ebenfalls kann der Container auf dem Portainer Dashboard komfortabel gestartet, gestoppt oder gelöscht werden.

portainer fhem

ioBroker installieren

Auch der ioBroker ist ähnlich schnell zu installieren. Hier genügt die folgende Codezeile.

sudo docker run -p 8081:8081 --name iobroker -v iobrokerdata:/opt/iobroker buanet/iobroker:latest

Schon hat man eine vollwertige ioBroker Installation zur Verfügung.

Weitere Informationen zu dem offiziellen ioBroker Docker Image sind auf github zu finden: https://github.com/buanet/ioBroker.docker

Weitere Systeme

Grundsätzlich gibt es für die Verwendung mit Docker bereits viele Images. Ein guter Anlaufpunkt ist der Docker HUB, hier gilt es aber darauf zu achten, dass die Images auch für den Raspberry Pi geeignet sind.

Updates

Portainer updaten

Um Portainer ein Update zu verpassen, muss erst die Container ID herausgefunden werden. Das geschieht mit dem Befehl

docker ps -a
container id portainer docker

Der Container muss vor dem Update mit folgenden Befehl gelöscht werden

sudo docker rm CONTAINERID

Hier die CONTAINERID mit der eigenen ersetzen. Danach wird die neue Portainer Version heruntergeladen

sudo docker pull portainer/portainer-ce

Und wieder gestartet

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

Fazit

Wie auch du nun vielleicht gesehen hast, ist Docker ein mächtiges Tool, was ich persönlich nicht mehr missen möchte. Man ist sehr flexibel, kann recht einfach mehrere Systeme auf einem Raspberry Pi laufen lassen, ohne das die einen Softwareabhängigkeiten die anderen stören. Auch ein super Vorteil ist, dass man die Systeme nicht systemübergreifend zerstören kann, da jedes in einem separaten Container läuft. Dadurch gewinnt man eine sehr hohe Flexibilität, die ich zuvor beim Raspberry Pi vermisst habe. Man kann von nun an auch z.B. als Neuling den ioBroker (parallel zu FHEM) ausprobieren und falls dieser einem nicht zusagt mit ein paar wenigen Klicks rückstandslos wieder entfernen. Einfacher geht es nun wirklich nicht!

Ich hoffe du siehst nun auch die ganzen überwiegenden Vorteile, lernst dich in Docker etwas ein, um dieses selbst auf deinem Produktivsystem nutzen zu können.

Angebot Raspberry Pi 4 Modell B; 4 GB, ARM-Cortex-A72 4 x,...
Angebot Raspberry 4596 Pi - offizielles Netzteil für...
Angebot SanDisk Extreme 32 GB microSDHC Memory Card + SD...
iUniker Raspberry Pi 4 Gehäuse, Raspberry Pi 4...

Letzte Aktualisierung am 2.05.2024 um 05:13 Uhr | Werbung | Bilder: Amazon Product Advertising API

Klicke auf einen Stern um eine Bewertung abzugeben!

Durchschnittsbewertung 5 / 5. Bewertungen: 1

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 „Mit Docker flexibel mehrere Systeme parallel nutzen“

1 Kommentar

  1. Hallo, Gute Zeit des Tages.
    Habe alles instaliert nach deine bescheribung.
    Habe aber ein Problem. Mein rfxtrx433e funktioniert in Fhem nicht mehr.
    Alte karte wieder rein, alles ok. Karte mit Docker rein, alles da nur das oben genannte Device-disconnected.
    Update bringte mich auch nicht weiter. Meine Fhem läuft auf den vorgänger von Debian-raspbian.
    Was kann dagegen machen. rfxtrx433e steuert meine intertechno geräte.

Schreibe einen Kommentar

OwnSmartHome.de