Login
Newsletter
Werbung

Do, 23. Juni 2016, 15:00

Docker im Schuleinsatz

Der praktische Unterricht im Fach »Betriebssysteme und Netzwerke« für den Bereich Linux bereitet vielen Schülern eine Menge Freude und soll sich auch in Prüfungssituationen niederschlagen. Die Klassenarbeit soll in einem realistischen Umfeld geschrieben werden, das eine Linux-Installation realistisch nachbildet. Neben Virtualisierungslösungen können auch Container zum Einsatz kommen, deren Verwendung hier vorgestellt wird.

Zwei Container mit Apache2-Webservern auf den Ports 50180 und 50280

Marco Bakera

Zwei Container mit Apache2-Webservern auf den Ports 50180 und 50280

Der Unterricht des Faches »Betriebssysteme und Netzwerke« macht Lehrern und Schülern gleichermaßen eine Menge Spaß. Das mag daran liegen, dass sie mit Linux häufig ein unbekanntes Betriebssystem kennenlernen und im Unterricht viele praktische Dinge tun können: einen Server aufsetzen, auf der Kommandozeile arbeiten, Konfigurationen vornehmen, Logfiles auswerten. Dabei kommt ein Raspberry Pi zum Einsatz, der im Schulnetz oder bei vielen Schülern sogar zu Hause betrieben wird. Die Schüler haben den Pi selbst angeschafft.

Schwierig wird es immer dann, wenn die Leistungen in einer Klassenarbeit überprüft werden müssen. Es wäre schade, wenn man die Klausur nur theoretisch mit Papier und Stift durchführen würde, obwohl der Unterricht vorher weitgehend praktischer Natur war. Es liegt daher nahe, auch in Prüfungssituationen eine Umgebung zu haben, die die Schüler aus dem Unterricht kennen. Da die Pis aber schon während des Unterrichtes eingerichtet und konfiguriert wurden, fällt die Option flach, diese Einrichtung für eine Klassenarbeit wieder rückgängig zu machen. Alternativ könnte man ein Image für eine SD-Karte vorbereiten und dieses während der Klassenarbeit bearbeiten lassen. Leider dauert das Kopieren einer solchen Karte mitunter sehr lange und die Einrichtung für über 50 Schüler (bei zwei Klassen) nimmt viel Zeit in Anspruch.

Anforderungen

Aber es gibt auch andere Möglichkeiten. Zusammengefasst sind folgende Voraussetzungen zu erfüllen: Es soll ein Linux-System für 25 Schüler eingerichtet werden, die alle gleichzeitig darauf arbeiten können. Das System soll in der Prüfung für alle Schüler gleich aussehen und weitestgehend ohne Einschränkungen nutzbar sein. Ferner soll der administrative Aufwand gering sein.

Früher wurden virtuelle Maschinen für VirtualBox verteilt, die die Schüler anschließend in der Prüfung nutzen konnten. Damit geht ein großer administrativer Aufwand einher, wenn große Dateien auf die Schul- oder Schülerrechner übertragen werden müssen. Sie sind mehrere Gigabyte groß und verbrauchen damit Bandbreite im lokalen Netzwerk bzw. Speicherplatz auf dem Rechner.

Docker-Container-Images erzeugen

Ein anderer Ansatz nutzt die Virtualisierungslösung Docker. Diese läuft mit sogenannten Containern in einem bestehenden Linux-System. Jeder Container sieht nach außen aus wie ein kleines Linux (in diesem Fall Ubuntu) und kann mit Root-Rechten von jedem Schüler beliebig bearbeitet werden. 25 Container, in denen ein Ubuntu-Linux läuft, können auf einem schwachen PC realisiert werden. Jeder Schüler erhält während der Prüfung einen eigenen Container, in dem er sich nach Belieben austoben kann.

Um den Umgang mit Docker für das beschriebene Szenario zu vereinfachen, wurden auf Github ein paar Skripte veröffentlicht. Zunächst wird ein Container mit einem Grundsystem gebaut:

$ ./docker.exam-build.sh

Das Skript baut mit Hilfe eines so genannten »Dockerfiles«, in dem der Container beschrieben wird, einen Container aus einer Ubuntu-Installation. Das Skript ruft docker build -t exam auf und erstellt mit Hilfe des Dockerfiles im selben Verzeichnis ein Container-Image, das für die später gestarteten Container als Vorlage dient.

Die Installation besteht aus einem Ubuntu 14.04 und wird um einen SSH-Server ergänzt, über den sich die Schüler später auf den Container verbinden können. Als Passwort wird standardmäßig »wohnzimmer« festgelegt.

Die Container sind anschließend über verschiedenen Ports über die IP-Adresse des Rechners, auf dem Docker läuft, erreichbar. In die Container können beliebige Dateien hineinkopiert oder Software vorinstalliert werden. Ein Apache-Webserver ist bereits vorinstalliert und ein Archiv mit der Wiki-Software dokuwiki im tmp-Verzeichnis abgelegt. Aufgabe der Schüler war es, dieses Archiv in dem Webserver zu installieren.

Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung