Docker einsetzen auf dem Raspberry Pi

© Mihai Andritoiu

Praktisch verpackt

Packen Sie wichtige Anwendungen einfach in einen Container, den Sie komfortabel mit Docker verwalten.

Seit 2013 hilft die Software Docker [1] dabei, Container zu verwalten, und sorgt so für einen hohen Automatisierungsgrad im Rechenzentrum. Wer sich für die Technologie interessiert und sie mit dem sparsamen RasPi kombiniert, erhält eine flexible Spielwiese für zu Hause und unterwegs.

Anders als typische virtuelle Maschinen enthalten Container kein eigenes Betriebssystem und starten so prinzipiell innerhalb von wenigen Augenblicken. Meist verfrachten Administratoren einzelne Anwendungen in Container, wie etwa Web- oder Fileserver. Durch die Möglichkeit, den Verbrauch an Ressourcen pro Container zu reglementieren, kommen sie häufig bei Hostern zum Einsatz.

Zudem stellt die Isolation eines Containers vom Rest des Systems eine große Hürde dar, wenn Angreifer über einen Prozess Zugriff auf das System erhalten wollen. Container und Docker sind in der Wahrnehmung vieler mittlerweile eng miteinander verwoben, obwohl Container und die zugrunde liegenden Konzepte schon lange Teil der IT-Landschaft sind. Näheres dazu erklärt der Kasten "Container im Rückblick".

Container im Rückblick

Abstrakt formuliert stellt ein Container eine isolierte Umgebung auf einem System bereit. Unter Linux sorgt der Kernel dafür, dass der Container in einem eigenen Namensraum lebt und dadurch vom Rest der Vorgänge auf dem System nichts mitbekommt. Aus Sicht des Containers findet dagegen ein voller Zugriff auf das System und die Hardware statt. Dank der Kernel Namespaces [13] besitzt der Container ein eigenes Root-Dateisystem und eigene Umgebungen für Prozesse, Netzwerk und andere Ressourcen. Durch Cgroups [14] stellt der Kernel sicher, dass ein Container dedizierte Ressourcen erhält, wie CPU und Arbeitsspeicher.

Die ersten Ansätze für Container reichen bis Ende der 1970er-Jahre zurück: Damals war es lediglich möglich, Change-Root-Umgebungen [15] auf Unix-Systemen einzurichten. Das Unix-Derivat BSD übernahm das Konzept etwa 1982, ehe der Ableger FreeBSD um das Jahr 2000 herum das Konzept als Jails weiterentwickelte. Diese Jails zeigen erkennbare Parallelen zu den heutigen Linux-Containern und erlaubten das Ausführen eines Prozesses, ohne dass dieser Zugriff auf das übrige System erhielt. Jails besitzen ein eigenes Root-Dateisystem und erhalten bei Bedarf eine eigene IP-Adresse.

Im Jahr 2004 folgte Oracle mit Solaris Containers, die Dank des Dateisystems ZFS das Anfertigen von Snapshots erlaubten. 2005 ging Open Virtuozzo (Open VZ) an den Start, was die enorme Verbreitung von günstigen VPS (Virtual Private Servers) begünstigte. OpenVZ verließ sich auf einen gepatchten Kernel, um Virtualisierung und Ressourcenisolation anzubieten.

Ein Jahr später kündigte Google die Process Containers an, aus denen die heutigen Cgroups entstanden. Cgroups sind seit Version 2.6.24 im Kernel enthalten und bilden die Grundlage, um Prozesse und Prozessgruppen mit eigenen Ressourcen ("limits") auszustatten. 2008 stand schließlich Linux Containers (LXC) bereit, das erstmals auf Basis von Cgroups und Namespaces vollwertige Container ohne eigens dafür angepassten Kernel anbot.

Container-Logistik

Oft sieht der Ablauf so aus, dass ein Admin Container unter Linux bei Bedarf frisch erstellt oder sie einmalig einrichtet und dann regelmäßig nutzt. Bei der Konfiguration eines Containers und dem Setup der darin laufenden Anwendung handelt es sich durchaus um einen aufwendigen Prozess.

Gerade Unternehmen hadern zudem damit, dass den üblichen Container-Lösungen von Haus aus Clustering- und Hochverfügbarkeitslösungen fehlen. Wie bei vielen anderen Open-Source-Projekten auch mangelt es zudem meist an grafischen Oberflächen, um die Technologie der breiten Masse von IT-Administratoren zugänglich zu machen.

Der große Siegeszug von Containern begann daher erst, als Docker (engl.: Hafenarbeiter) auf der Bühne erschien: Im März 2013 stellte die kalifornische Firma Dotcloud die Software auf einer Python-Konferenz vor, und sie fand schnell Anklang in der Community (siehe Kasten "Das Docker-Konzept").

Das Docker-Konzept

Docker war schon in seiner Anfangszeit vor allem als Projekt zum Automatisieren von Abläufen gedacht, bei dem sich Container mit anderen Komponenten zu einem mächtigen Tool-Set vereinen. Während es beim Erstellen von Containern zu Beginn auf dieselbe Technologie setzte wie Linux Containers, stützt sich die Software heute auf die eigene, abstrahierte Implementation, die in die Bibliothek Libcontainer einfloss. Mittlerweile verwenden auch wieder andere Projekte diese Schnittstelle, um isolierte Umgebungen einzurichten.

Docker folgt einem Client-Server-Modell: Als Werkzeuge für die Kommandozeile fungieren Client-Tools, die mit dem entsprechenden Daemon (docker engine) kommunizieren. Dabei spielt es keine Rolle, ob Sie beide Komponenten auf ein und demselben System betreiben oder diese trennen. Erwartungsgemäß nimmt der Daemon Befehle entgegen und zeichnet für die eigentliche Umsetzung verantwortlich, wie beispielsweise das Starten und Stoppen von Containern.

Installation unter Raspbian

Docker steht für alle gängigen Distributionen bereit. Sie können die Software also aus den Paketquellen oder über andere Wege installieren. Für den Test auf dem RasPi empfiehlt sich der Einsatz eines offiziellen Skripts für die Installation, da es Ihnen viele Schritte abnimmt.

Auf gängigen Desktop-PCs und Servern stellt Docker keine allzu hohen Anforderungen an das darunterliegende System: Sie brauchen einen 64-Bit-Kernel, der Cgroups, Namespaces und AUFS unterstützt. Bei den gängigen Distributionen genügt es, wenn Sie dazu Kernel 3.10, besser 3.12 oder neuer, installieren.

Für den Betrieb von Docker auf dem RasPi empfiehlt sich der Einsatz eines Raspberry Pi 3: Der Quadcore-Prozessor Cortex-A53 mit einem Takt von 1,2 GHz und 1 GByte RAM sorgen für genug Power, um Container sinnvoll einzusetzen. Prinzipiell läuft Docker aber auch auf kleineren Modellen wie dem 2B oder Pi Zero. Für den Artikel verwendete der Autor einen RasPi 3 unter Raspbian 8. Alle im Artikel beschriebenen Kommandos und Beispiele beziehen sich auf dieses Testgerät.

Zur Installation melden Sie sich via SSH auf dem RasPi an. In einer Konsole bringen Sie das System zunächst als Root auf den aktuellen Stand (Listing 1, Zeile 1). Dann erfolgt die Installation über ein vom Projekt bereitgestelltes Skript. Damit die Installation klappt, brauchen Sie das Werkzeug Curl. Der Befehl lädt das Skript von der offiziellen Docker-Webseite herunter und speichert es unter dem Namen install-docker.sh. Anschließend ruft es einen Pager auf und bietet so die Möglichkeit, einen Blick in das Skript zu werfen. Beenden Sie diesen über [Q], startet das Skript direkt mit der Arbeit (Abbildung 1).

Abbildung 1: Die Installation von Docker auf einem Raspberry Pi setzt voraus, dass Sie das System über das Paketmanagement auf den aktuellen Stand bringen.

Der Autor rät daher dazu, diesen Weg nur in experimentellen und unkritischen Umgebungen zu verwenden. Um Docker mit dem Benutzer pi einzusetzen, müssen Sie diesen noch der frisch angelegten Docker-Gruppe hinzufügen (Listing 1, Zeile 6).

Falls Sie Docker auf andere Art und Weise installieren möchten, können Sie auf ein fertiges Image der Gruppe Hypriot zurückgreifen [2], das Programm selbst bauen [3] oder ein (allerdings veraltetes) Paket für den RasPi nutzen, das ebenfalls von Hypriot stammt.

Listing 1

 

# apt-get update && apt-get dist-upgrade
# curl -sSL -o install.sh https://get.docker.com
# less install.sh
[... Beenden mit [Q] ...]
# sh install.sh
# usermod -aG docker pi

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 8 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

Raspberry Pi Geek kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • Docker auf dem Raspberry Pi mit HypriotOS

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

  • Heft-DVD 11-12/2017

    Nur mit dem optimalen System und der richtigen Software nutzen Sie das volle Potenzial eines Mini-PC. Mit der Heft-DVD erhalten Sie nicht nur die neusten Distributionen für den RasPi und Co., sondern gleichzeitig auch die passenden Programme zu den Artikeln.

  • Zwei Ubuntu-Betriebssysteme auf dem Raspberry Pi 2

    Canonical zögerte lange mit einem Image für den Raspberry Pi. Mit der zweiten Pi-Generation ändert sich dies: Gleich zwei Ubuntu-Systeme sind auf die Himbeere gekommen – eins für den Desktop und eins für die Cloud.

  • Raspberry-Pi-Dienste über das Internet erreichen

    Das VPN von Weaved bietet eine einfache, sichere, elegante und zudem kostenfreie Möglichkeit, auf dem Raspberry Pi laufende Dienste auch außerhalb des Heimnetzes verfügbar zu machen.

  • Ubos: Daten unter Kontrolle

    Mit Ubos ist es ein Leichtes, verschiedene Webdienste unter eigener Kontrolle zu hosten. Die auf Arch Linux basierende Server-Distribution funktioniert auch auf dem Raspberry Pi.

Aktuelle Ausgabe

06/2019
Home Improvement

Diese Ausgabe als PDF kaufen

Preis € 9,99
(inkl. 19% MwSt.)

Stellenmarkt

Neuigkeiten

  • Verschlungene Pfade

    Mit Schleifen, Fallunterscheidungen und Funktionen programmieren Sie komplexe Skripte auf einfache und elegante Weise.

  • Extrem genau

    Mit einem A/D-Wandler messen Sie bei Bedarf Spannungen. Der MCP3424 macht dabei konstruktionsbedingt eine gute Figur.

  • Verbindungsaufnahme

  • Süßer Wecker

    Dem RasPi fehlen sowohl eine Echtzeituhr als auch ein BIOS, ein zeitgesteuertes Wecken erfordert also Zusatzkomponenten. Hier springt der Witty Pi Mini in die Bresche, ein µHAT von UUGear.

  • Windows to go

    Das Aufsetzen zuverlässiger und sicherer Remote-Desktop-Lösungen erfordert einiges Know-how. Die RasPi-basierte Pinbox von Pintexx reduziert den Konfigurationsaufwand auf ein Minimum.

  • Prima Klima

    In Museen ist es Pflicht, zu Hause nützlich: das permanente Prüfen und zentrale Erfassen der Feuchtigkeit und Temperatur in Räumen.

  • Auf einen Blick

    Ein maßgeschneiderter Infoscreen auf RasPi-Basis mit stromsparendem E-Ink-Display zeigt Termine, Bilder, Mitteilungen und Wetterinformationen an.

  • Sanft berührt

    Mit einem RasPi und dem Controllermodul PiXtend lassen sich mühelos Roboterarme ansteuern und deren Bewegung automatisieren.

  • Popcorn-Kino

    Mit Kodi 18.0 unterstützt LibreELEC 9.0 jetzt die von vielen Streaming-Diensten genutzte DRM-Verschlüsselung. Die Integration von Netflix, Amazon und Co. erfordert allerdings Handarbeit.

  • So nah und doch so fern

    Der RasPi kommt häufig als Server oder Steuerrechner für spezielle Zwecke zum Einsatz. Mit Anydesk erhalten Sie dazu eine Steuersoftware mit grafischer Oberfläche.