Einleitende Worte zu den Docker Tutorials

Dein letzter Klick war eine gute Entscheidung! Statt einfach drauf los zu laufen hast du dich entschieden erst einmal ein paar einleitende Worte zu meinen Docker-Tutorials zu lesen. Vielen Dank dafür. 

Beginnen wir am Besten gleich mal mit einer elementaren Frage:

Was ist dieses "Docker" eigentlich?

Folgendes findet man dazu auf Wikipedia: „Docker ist eine Freie Software zur Isolierung von Anwendungen mit Containervirtualisierung.“

Ja gut, und nun? OK, der Wikipedia Artikel hilft uns hier nicht so richtig weiter. Daher mein Tipp: Viele YouTube-Videos erklären deutlich besser, was Docker ist und wie man es verwendet. Das reicht von kurzen „Docker in 5 Minuten“-Videos, über mehrteilige Tutorial-Reihen bis hin zu zwei stündigen Video-Kursen. Wenn ihr also absolut neu auf diesem Gebiet seit, dann empfehle ich euch erst einmal ein kleine „Youtube-Stunde“. Also einfach mal die YouTube-Suche bemühen und ein paar Basics aufsaugen. Ich denke so bekommt ihr ein gutes Gefhl für die Materie und lernt gleich noch was Images und Container überhaupt sind. Die Basics sind für mich ein absolutes Muss für Einsteiger! Es sollte zwar generell möglich sein, dass ihr meine Anleitungen stumpf per „copy & paste“ zum Laufen bringt, trotzdem wäre es mir ein Anliegen, dass ihr am Ende auch versteht was ihr da eigentlich macht. 🙂

Wenn ihr dann eine erste Vorstellung zum Thema Docker habt, stellt sich irgendwann die Frage: Und wie lege ich jetzt am Besten los? Nun ja, zuerst einmal benötigt ihr natürlich einen Docker Host. Hier bieten sich viele Möglichkeiten an. Diese reichen von einer Docker-Installation auf eurem Windows Desktop PC (nicht zu empfehlen, da es unter Umständen zu Problemen bei der Verwendung von Linux basierten Docker Images kommen kann) über die Installation des Docker Dienst auf einem Raspberry Pi oder einer virtuellen Linux Maschine (Stichwort Hyper-V, VMware, Proxmox & Co) bis hin zu NAS-Geräten (z.B. von Synology oder QNAP) auf denen sich, meist durch Zusatzpakete der Hersteller, ebenfalls ein Docker Dienst aktivieren lässt. Ihr seht also, die Palette ist weit gefächert und das Schönste daran: Es gibt keine Universal-Lösung die sich für jeden gleich gut eignet! 🙂

Aber bevor ihr jetzt gleich die Flinte ins Korn werft, hier ein kleiner Überblick was ich aus eigener Erfahrung heraus mit gutem Gewissen empfehlen kann.

Synology Disk Stations

Nennt ihr eine Disk Station von Synology euer eigen, schaut doch mal auf die Synology Website zum Thema Docker. Synology bietet nämlich ein eigenes Docker Paket für den DiskStation Manager (DSM) an. Mit zwei (oder unwesentlich mehr) Klicks habt ihr das Paket auf eurer DS installiert und verfügt über einen eigenen Docker Host. Allerdings klappt das nur, sofern eure DS unter den kompatiblen Modellen aufgelistet ist. Doch nicht zu früh freuen. Keine Empfehlung ohne „aber“. Und so sei gesagt, dass nicht jedes unterstützte Modell auch sinnvoll als Docker Host zu nutzen ist. Ausschlag gebend ist hier zumeist die Größe des installierten Arbeitsspeichers (RAM), gleich gefolgt von der Leistung des verbauten Prozessors. Denn solltet ihr weniger als 2 GB RAM und/ oder nur einen der schwächeren Prozessoren zur Verfügung haben, dann könnte es bald eng werden. Vor allem wenn ihr auf der DS noch andere Dienste (Mediaserver, Survelliance Station, Datenbankserver, usw.) zur Verfügung stellt. Ich persönlich habe eine DS1515+ mit 6 GB RAM und einem „Intel Atom C2538 Quad Core 2,4 GHz“ Prozessor. Dennoch musste ich letztendlich meinen ioBroker auf einen anderen Host umziehen lassen, nachdem ich neben dem Mediaserver Plex nun auch noch eine Survelliance Station (Videoüberwachung) mit 6 Kameras darauf laufen habe. Irgendwann kommt eben jedes System mal an seine Grenzen.

Einplatinencomputer (RaspberryPi & Co)

Wie ihr sicher wisst hat sich bezüglich der Leistung mit dem aktuellen Raspberry Pi 4 ordentlich was getan. Mit bis zu 8 GB RAM und einem 1,5GHz Quad-Core kommt aus dem Ding mittlerweile richtig was raus. Genug jedenfalls für den Einstieg in Docker. Das Setup gestaltet sich im Wesentlichen sehr simpel. Raspbian Image drauf und Docker nach installiert. Anleitungen dazu findet ihr im Internet zu genüge. Doch auch hier wieder ein „aber“. Durch die  Verwendung einer SD Speicherkarte als Hauptspeicher erhöht sich die Wahrscheinlichkeit, dass das Gerät früher oder später mal aufgrund einer defekten Speicherkarte stehen bleibt. Wohl dem der es mit der Erstellung von Backups sehr genau nimmt. 🙂 Allerdings sei auch dazu gesagt, dass es mittlerweile auch für den Pi Lösungen gibt die es ermöglichen das Speicherkarten-Problem zu umgehen. Und für seine vielfältigen Freunde wie Banana Pi & Co sind teilweise sogar onboard SATA Schnittstellen oder NAND Speicher vorhanden. Ich selbst habe bei mir für den Livebetrieb von ioBroker Slaves zwei Raspberry Pi zu laufen. Als Testsystem läuft zusätzlich ein Cubietruck. Beides funktioniert bisher tadellos.

Virtuelle Maschine unter VMware, Hyper-V, Proxmox oder Virtual Box

Ja, sozusagen die letzte Stufe der Evolution. Eine virtuelle Linux Maschine (z.B. mit Debian oder Ubuntu). Über die Ressourcen brauche ich hier wohl nicht sprechen. Wenn ihr einen VM-Host im Einsatz habt, dann wisst ihr in der Regel auch was hier Phase ist. Ich selbst habe vor ca. 2 Jahren meinen echten VMware Server aufgrund des Stromverbrauchs sterben lassen und mir zum Testen mit virtuellen Maschinen einen „refurbischten“ Fujitsu professional Desktop PC zugelegt. Ausgestattet mit etwas zusätzlichem RAM (20GB) und zwei 24/7 tauglichen 500GB SATA Festplatten im RAID sowie zwei 250GB SSDs werkelt das System jetzt mit Proxmox 6 umher und beherbergt neben verschiedenen Test und Admin Maschinen auch eine Debian-VM als Docker Host. Im Normalbetrieb liegt der Stromverbrauch bei 20-25W. Ist natürlich kein Raspberry Niveau, aber viel weniger zieht meine DiskStation auch nicht. 🙂

Nun ja, jetzt sind wir doch schon mal ein ganzes Stück weiter. Ihr wisst hoffentlich grob was Docker ist und wie es funktioniert. Außerdem habt ihr euch bestenfalls bereits für einen Docker Host entschieden und diesen sogleich startklar gemacht. Und das ist der Punkt an dem meine Tutorials interessant werden….

MfG,
André