Original-URL des Artikels: https://www.golem.de/news/docker-auf-dem-raspberry-pi-mit-hypriot-gut-verpackt-1711-130639.html    Veröffentlicht: 02.11.2017 12:00    Kurz-URL: https://glm.io/130639

Docker auf dem Raspberry Pi mit Hypriot

Gut verpackt

Das Containerisieren von Anwendung und die Verwaltung der Ressourcen trauen die meisten nur ausgewachsenen Computern zu. Dass sich auch der Raspberry Pi zur Verwaltung von Containern eignet, zeigt HypriotOS.

Viele komplexe Linux-Applikationen wie etwa Web- oder Cloud-Server müssen umständlich mit zahlreichen abhängigen Paketen manuell installiert und konfiguriert werden. Einsteiger geben da schnell auf. Mit HypriotOS und dem integrierten Docker bekommen sie eine quasi schlüsselfertige Lösung, die ihnen eine Menge Zeit und Arbeit erspart.

Das aus dem oberfränkischen Bamberg stammende HypriotOS bringt als erstes Betriebssystem für den Raspberry Pi Docker auf die ARM-Architektur. Das auf Debian basierende Containersystem wird seit 2014 entwickelt und legt den Fokus auf Sicherheit sowie ein möglichst kompaktes Erscheinungsbild. HypriotOS hat von Haus aus bereits alle wichtigen Docker-Werkzeuge. Die ressourcenschonende Konzeption des Betriebssystems gestattet es, selbst auf schwächeren ARM-Rechnern bis zu mehrere Hundert Docker-Instanzen simultan zu betreiben. Das macht den Rasperry Pi als Docker-Plattform im Markt der Embedded Systems und des Internet of Things (IoT) hochinteressant.

Setup leichtgemacht

Das System HypriotOS ist als rund 230 MByte großes ZIP-File auf der Projektseite der Entwickler erhältlich. Das heruntergeladene Archiv wird zunächst entpackt, dann wird die daraus resultierende, etwa 1 GByte große Image-Datei auf eine Micro-SD-Karte kopiert, die dabei nicht im System eingehängt sein darf.



Anschließend wird die SD-Karte in einen mit dem Netzwerk verbundenen Rasberry Pi gesteckt und dieser gestartet. Beim ersten Hochfahren passt das Setup zunächst das Dateisystem an, was etwas dauert.

Das Betriebssystem startet bis zum Login-Prompt und stellt nach Zuteilung einer IP-Adresse durch den Router automatisch die LAN-Verbindung her. Nutzer ermitteln danach die IP-Adresse des Systems, indem sie auf einem anderen Rechner im Intranet einen Scan starten. Dazu eignen sich Tools wie der Angry-IP-Scanner. Der Raspberry Pi erscheint dabei mit dem Hostnamen black-pearl.local und der dazugehörigen IP-Adresse.



Auf dem HypriotOS-System arbeitet bereits ein SSH-Server, so dass Nutzer sich von jeder Arbeitsstation in demselben Netz aus auf dem Raspberry Pi anmelden können. Dazu geben sie im Terminal den Befehl ein:



Das vorgegebene Passwort lautet hyp-riot. Nach dem Anmelden zeigt der Befehl docker info den Status des Docker-Diensts an, wobei die Software eine lange Statusliste im Terminal ausgibt. Nun lassen sich variable Docker-Container auf das System transferieren, um damit zu arbeiten.



Server in a Box

Webserver gehören traditionell zu jenen Applikationen, die Nutzer auf herkömmlichen Maschinen zunächst aufwendig installieren und konfigurieren müssen. Unter HypriotOS reduzieren sich diese Prozeduren auf wenige Eingaben. So genügt ein kurzes Kommando, um ein entsprechendes Image aus dem Internet herunterzuladen und zu starten:



Mit dem Befehl docker ps können Nutzer sich dann den aktiven Container anzeigen lassen, im vorliegenden Beispiel den Webserver mit seiner Container-ID, dem heruntergeladenen Image sowie einigen weiteren Statusdaten. Ein Aufruf der IP-Adresse des HypriotOS-Systems im Webbrowser eines PCs öffnet die Startseite des Docker-Webservers.



Die Entwickler von HypriotOS stellen auf ihren Webseiten mehrere Beispiele für die Einsatzmöglichkeiten des Systems vor. Dazu gehören On-premise-Cloud-Server, aber auch Blog-Plattformen wie etwa Wordpress. Hier gilt es zu beachten, dass sich nicht jedes verfügbare Docker-Image für den Betrieb auf dem Rasberry Pi eignet: Weil dessen Hardware-Architektur auf ARM basiert, starten nur dafür konzipierte Container, nicht aber solche für andere Architekturen.

Auf Docker basierende Applikationen erhalten Nutzer auf den Seiten des Docker Hub. Hier finden sie auch ein eigenes Repository in Tabellenform speziell für HypriotOS, das ständig erweitert wird. Auch andere Docker-Sammlungen bieten Images für den Raspberry Pi an. Diese sind an Kürzeln wie rpi oder arm im Image-Namen zu erkennen.

Zu jedem Docker-Image gehört eine kleine Anleitung für die Installation und den Einsatz. Sie wird durch einen Klick auf den Button Details rechts neben dem jeweiligen Applikationsnamen geöffnet. Die angezeigten Befehlszeilenargumente für die Installation des Images können dabei durch Kopieren und Einfügen direkt übernommen werden.

Übliche Docker-Syntax

Docker-Images aus dem Docker Hub werden stets mit einem Befehl nach dem Schema docker pull Repo/Image ins System integriert. Docker zeigt dabei den Download-Fortschritt an.



Um die jeweilige Applikation im Docker-Container zu starten, wird meist ein Kommando nach folgendem Schema eingegeben:



Anschließend wird im Webbrowser des Verwaltungsrechners für das Docker-System die entsprechende IP-Adresse aufgerufen, gefolgt von einem Doppelpunkt und der Portnummer.

Für das Entwickeln neuer Docker-Container gibt es ebenfalls eine eigene Syntax, die jedoch nicht über den Browser genutzt wird, sondern direkt am Prompt im Terminal. So kann beispielsweise eine Programmiersprache wie Python oder Java als Docker-Container in das HypriotOS-System integriert werden, um damit anschließend Applikationen zu entwickeln. Auch die Ersteinrichtung von Datenbanken erfolgt im Terminal.

Statistiken leicht einsehbar

Statistische Daten zum HypriotOS-System können bequem über die grafische Oberfläche eingesehen werden, nachdem das Docker-Image DockerUI aus dem HypriotOS-Repository installiert wurde. Dieser Container liefert nach dem Start und dem Aufruf im Webbrowser aussagekräftige Details zu den jeweiligen installierten Containern, deren Ressourcenverbrauch und Betriebsdauer. Als besonders nützlich erweist sich diese Applikation, wenn ressourcenintensive Container wie etwa On-premise-Server für Cloud-Dienste installiert werden sollen.

Das DockerUI-Interface liefert dazu im Reiter Images den Speicherplatzbedarf der heruntergeladenen Images. Während viele der Abbilder weniger als 10 MByte Speicherplatz auf der SD-Karte beanspruchen, kommt beispielsweise der Owncloud-Server auf stolze 520 MByte. Auch Datenbank-Server wie das Docker-Image von MySQL benötigen rund 200 MByte Speicherkapazität auf der SD-Karte. Somit tragen die Informationen der DockerUI-Oberfläche mit dazu bei, den Ressourcenverbrauch strategisch zu planen.



Fazit

HypriotOS überzeugte im Praxistest vollständig. Es vereinfacht die gesamte Installation und Konfiguration etwa eines Cloud- oder Datenbankservers enorm. Auf unserem Testsystem, einem Raspberry Pi 3B, ließ sich sogar ein Owncloud-Server problemlos installieren und anschließend konfigurieren. Selbst beim Betrieb eines halben Dutzends weiterer Container auf dem HypriotOS-System ließ sich im Test ein Owncloud-Server problemlos und ohne spürbare Latenzen verwalten; Datentransfers gelangen ohne eine merkliche Verlangsamung des Systems. Das System ersetzt dadurch unter definierten Anforderungen in kleineren Umgebungen durchaus einen ausgewachsenen Cloud-, Datenbank- oder Proxy-Server. Für einen sinnvollen Betrieb sollten Nutzer sich allerdings vorab genauer mit der Docker-Syntax beschäftigen.

Dieser Text stammt aus der aktuellen Ausgabe des Magazins Raspberry Pi Geek (11-12/2017), das seit dem 5. Oktober 2017 am Kiosk verfügbar ist.  (ebw)


Verwandte Artikel:
Open-Source-Jahresrückblick 2015: Freie Software macht vieles besser, aber nicht alles   
(28.12.2015, https://glm.io/118090 )
Containerd: Container-Laufzeit von Docker allgemein verfügbar   
(07.12.2017, https://glm.io/131549 )
Raspad: Raspberry Pi kommt ins Bastel-Tablet-Gehäuse   
(06.03.2018, https://glm.io/133180 )
Kubernetes und Openshift: Red Hat übernimmt Container-Spezialisten Core OS   
(31.01.2018, https://glm.io/132494 )
Librem 5: Purism-Smartphone bekommt Smartcard für Verschlüsselung   
(09.03.2018, https://glm.io/133248 )

© 1997–2019 Golem.de, https://www.golem.de/