Startseite>Docker auf dem Raspberry Pi mit HypriotOS
Aus Raspberry Pi Geek 12/2017

Docker auf dem Raspberry Pi mit HypriotOS

© Pixelery, 123RF

Gut verpackt

Erik Bärwaldt

Das Virtualisieren von Ressourcen trauen die meisten nur “ausgewachsenen” Computern zu. Dass sich auch der Raspberry Pi zur Virtualisierung eignet, zeigt HypriotOS.

Viele komplexe Linux-Applikationen, wie etwa Web- oder Cloud-Server, muss man umständlich und zeitraubend mit zahlreichen abhängigen Paketen manuell installieren und konfigurieren. Einsteiger werfen da schnell das Handtuch. Mit HypriotOS und dem darin integrierten Docker (siehe Kasten “Was ist 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 Sicherheitsaspekte sowie ein möglichst kompaktes Erscheinungsbild. HypriotOS bringt von Haus aus bereits alle wichtigen Docker-Werkzeuge mit.

Die ressourcenschonende Konzeption des Betriebssystems gestattet es, auch auf schwächeren ARM-Rechnern bis zu mehrere Hundert Docker-Instanzen simultan zu betreiben. Das macht den Raspberry Pi als Docker-Plattform im Markt der Embedded Systems und des Internet of Things (IoT) hochinteressant.

Was ist Docker?

Docker stellt eine im Vergleich zu dedizierten virtuellen Maschinen vereinfachte Virtualisierungslösung dar: In Containern, die eine Laufzeitumgebung für ein virtualisiertes Betriebssystem darstellen, laufen vom Rest des Systems isolierte Applikationen. Die Container verhalten sich dabei wie normale Dateien und lassen sich problemlos portieren. Die auf Linux zugeschnittene Virtualisierung nutzt verschiedene Technologien des Kernels. Die Container arbeiten voneinander unabhängig, beeinflussen sich nicht und lassen sich auch einzeln aktualisieren.

Insbesondere beim Ausrollen von Software, aber auch beim Verwenden mehrerer Cloud-Plattformen punktet Docker mit erheblichen Vorteilen: Aufgrund des kompakten Designs schleppen die Docker-Container nicht wie herkömmliche virtuelle Maschinen eine komplette Betriebssystemumgebung und den damit gegebenen Ressourcen-Overhead mit sich herum, sondern integrieren lediglich die zwingend benötigten Abhängigkeiten. Alle anderen Ressourcen stellt der Linux-Kernel des Hosts bereit. Docker-Container erhalten auf diesem Weg die benötigten Ressourcen jeweils isoliert zugeteilt, sodass auch Schadprogramme kaum eine Möglichkeit haben, sich über Containergrenzen hinweg zu verbreiten.

Setup

Sie erhalten HypriotOS als rund 230 MByte großes ZIP-File auf der Projektseite der Entwickler [1]. Das heruntergeladene Archiv entpacken Sie zunächst, dann kopieren Sie die resultierende, etwa 1 GByte große Image-Datei auf eine Micro-SD-Karte (Listing 1), die dabei nicht im System eingehängt sein darf.

Listing 1

 

$ dd if=hypriotos-rpi-v1.5.0.img of=/dev/mmcblk0 bs=1M conv=fsync

Anschließend stecken Sie die SD-Card in einen mit dem Netzwerk verbundenen Raspberry Pi und starten diesen. Beim ersten Hochfahren passt das Setup zunächst das Dateisystem auf der Karte 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. Sie 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 (Abbildung 1).

Abbildung 1: Um die IP-Adresse von HypriotOS in Erfahrung zu bringen, nutzen Sie Tools wie den Angry-IP-Scanner von einem anderen Rechner im Netz aus.

Abbildung 1: Um die IP-Adresse von HypriotOS in Erfahrung zu bringen, nutzen Sie Tools wie den Angry-IP-Scanner von einem anderen Rechner im Netz aus.

Auf dem HypriotOS-System arbeitet bereits ein SSH-Server, sodass Sie sich von jeder Arbeitsstation in demselben Netz aus auf dem Raspberry Pi anmelden können. Dazu geben Sie im Terminal den Befehl ssh [email protected]RasPi-IP ein. Das vorgegebene Passwort lautet hypriot. Nach dem Anmelden zeigt der Befehl docker info den Status des Docker-Diensts an, wobei die Software eine lange Statusliste im Terminal ausgibt (Abbildung 2). Nun lassen sich variable Docker-Container auf das System transferieren, um damit zu arbeiten.

Abbildung 2: Läuft Docker, zeigt der Befehl »docker info« ausführliche Informationen dazu.

Abbildung 2: Läuft Docker, zeigt der Befehl »docker info« ausführliche Informationen dazu.

Server in a Box

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

$ docker run -d -p 80:80 hypriot/rpi-busybox-httpd

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

Abbildung 3: Es genügt ein Aufruf (oben), um das gewünschte Docker-Image in Betrieb zu nehmen. »docker ps« (unten) zeigt den aktuellen Container-Status an.

Abbildung 3: Es genügt ein Aufruf (oben), um das gewünschte Docker-Image in Betrieb zu nehmen. »docker ps« (unten) zeigt den aktuellen Container-Status an.

Die Entwickler von HypriotOS stellen auf ihren Webseiten mehrere Beispiele für die Einsatzmöglichkeiten des Systems vor [2]. Dazu gehören unter anderem auch On-premise-Cloud-Server, aber auch Blog-Plattformen wie etwa WordPress. Hier gilt es aber zu beachten, dass sich nicht jedes verfügbare Docker-Image für den Betrieb auf dem RasPi 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 Sie auf den Seiten des Docker Hub [3]. Hier finden Sie auch ein eigenes Repository in Tabellenform speziell für HypriotOS [4], das ständig erweitert wird. Auch andere Docker-Sammlungen bieten Images für den Raspberry Pi an. Diese erkennen Sie an Kürzeln wie rpi oder arm im Image-Namen.

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

Syntax

Docker-Images aus dem Docker Hub integrieren Sie stets mit einem Befehl nach dem Schema docker pull Repo/Image ins System. Docker zeigt dabei den Download-Fortschritt an (Abbildung 4). Um die jeweilige Applikation im Docker-Container zu starten, geben Sie meist ein Kommando nach folgendem Schema ein:

$ docker run -d -p Host-Port:Container-Port Image
Abbildung 4: Docker lädt mit dem Pull-Befehl Images direkt vom Server des Projekts herunter.

Abbildung 4: Docker lädt mit dem Pull-Befehl Images direkt vom Server des Projekts herunter.

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

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 5 HeftseitenPreis €0,99
(inkl. 19% MwSt.)
€0,99 – Kaufen
RASPBERRY PI GEEK KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS
Deutschland