Website-Suche

Ich verwende Docker für fast alles - und ich bin nicht einmal Entwickler.


Glauben Sie, dass Docker nur für Entwickler ist? Ich habe diesen Spruch schon gehört, aber er könnte nicht falscher sein. Ich bin kein Entwickler - dennoch nutze ich Docker, um Dutzende von Diensten und Apps in meinem Heimlabor auszuführen.

Was ist eigentlich Docker?

Eine einzigartige Möglichkeit, Apps, Dienste und sogar Betriebssysteme auszuführen

Docker ist eine Containerisierungsplattform, die es Ihnen ermöglicht, Dienste, Programme sowie kleine Betriebssysteme auf Ihrem Computer oder Server auszuführen. Sie kann auch dazu verwendet werden, verschiedene Entwicklungsumgebungen, Tools sowie andere für die Entwicklung von Anwendungen benötigte Elemente zu betreiben.

Einer der Hauptgründe für die Verwendung von Docker ist es, verschiedene Dienste voneinander sowie vom Host-Betriebssystem getrennt auszuführen. Dadurch erhalten Sie mehr Privatsphäre und Schutz für Ihr System. Falls ein Container kompromittiert wird, hat er nur Zugriff auf sich selbst sowie auf jene Ressourcen, denen Sie ihm Zugriff gewährt haben.

Also, bin ich ein Entwickler?

Im klassischen Sinne eigentlich nicht.

Ich würde mich nicht unbedingt als „Entwickler“ bezeichnen. Zwar habe ich früher etwas Programmierung sowie die Entwicklung von Anwendungen betrieben, doch das liegt schon viele Jahre zurück. Ich kenne mich mit dem Linux-Terminal aus und experimentiere immer noch gelegentlich mit HTML oder CSS, wenn es um meine persönlichen Webseiten geht - aber ich bin keineswegs ein vollwertiger Entwickler.

Im besten Fall bin ich ein Bastler. Ich liebe es, mit Dingen herumzuexperimentieren, den Code einer App so zu verändern, dass sie das tut, was ich will, und in den verschiedenen Diensten herumzustöbern, die ich in meinem Heimlabor betreibe.

Da ich keine Entwicklungsaufgaben erledige, betreibe ich eigentlich keine Entwicklungsdienste in Docker. Es gibt einige tolle Entwicklertools in Docker - ich habe für sie persönlich einfach keinen Bedarf.

Wenn ich kein Entwickler bin, warum verwende ich Docker?

Die Vorteile der Containerisierung






Obwohl Docker eine fantastische Arbeit bei der Unterstützung von Entwicklungsaufgaben leistet, passt das einfach nicht zu meinem Anwendungsfall. Stattdessen nutze ich die Container-Technologie von Docker für etwas völlig anderes: das Homelabbing.

Es stehen Zehntausende von Docker-Containern zur Verfügung. Viele der verfügbaren Container dienen dazu, Dienste oder Programme auszuführen - nicht unbedingt zur Entwicklung.

In meinem Homelab habe ich fast 30 Docker-Container auf meinem primären Docker-Host sowie noch etwa ein halbes Dutzend auf meinem sekundären Docker-Host installiert. Zu diesen Diensten gehören unter anderem Pi-hole, Plex, OpenSpeedTest, Calibre, paperless-ngx, Home Assistant, Tautulli und Homepage.

Die Frage ist: Warum verwende ich dafür Docker anstatt die Apps einfach selbst zu installieren? Die Antwort ist einfach: Ich liebe Container.

Mit Docker kann mein Plex-Container nichts auf meinem Netzwerk erreichen, es sei denn, ich gewähre ihm den Zugriff. Also gebe ich Plex Zugriff auf meine Mediathek - und das war’s. Home Assistant hat eigentlich überhaupt keinen Zugriff auf meinen Server; es verfügt über eine eigene IP-Adresse und läuft in meinem Netzwerk. Falls Home Assistant jedoch kompromittiert wird, kann es nicht auf die anderen Geräte in meinem Netzwerk zugreifen.

Dasselbe gilt für alle anderen Apps, die ich unter Docker ausführe. Sie sind alle voneinander getrennt. Docker-Container haben nur Zugriff auf das, was ich ihnen gestatte - das bedeutet, ich habe eine fein abgestimmte Kontrolle über die Sicherheitsrisiken in meinem Homelab.

Darüber hinaus sind Docker-Container bereits für die Anwendung vorkonfiguriert, die man ausführen möchte - daher ist kaum Konfigurationsaufwand nötig, um einen Dienst zum Laufen zu bringen. Alle Abhängigkeiten sind bereits vorhanden und werden vom Container-Entwickler auf dem neuesten Stand gehalten. Falls eine Abhängigkeit einen Neustart erfordert, muss ich lediglich den Docker-Container neu starten - nicht mein Host-System.

Docker ist außerdem portabel - ich kann das Host-System ganz einfach wechseln, ohne die Dienste neu installieren oder konfigurieren zu müssen. Kürzlich habe ich meinen Docker-Server von einem Computer auf einen anderen übertragen; der einzige Container, der seine Konfiguration nicht mitnahm, war Home Assistant - den ich jedoch problemlos aus einem Backup wiederherstellen konnte.

Als ich anfing, Docker zu verwenden, war mir nicht klar, wie nützlich diese Funktion eigentlich ist. Inzwischen habe ich sie jedoch schon unzählige Male genutzt. Auch wenn die Migrationsfunktion praktisch ist, gefällt mir an Docker am meisten, dass ich einen Container neu installieren kann, ohne irgendwelche Einstellungen oder Konfigurationen zu verlieren.

Warum verwende ich also Docker? Es ist einfach der einfachste Weg für mich, Dienste in meinem Homelab zu installieren, zu testen und zu nutzen. Das Bereitstellen eines Docker-Containers dauert nur wenige Sekunden. Wenn ich fertig bin, entferne ich einfach den Container - und der Dienst samt allen Abhängigkeiten verschwindet.

Docker steuert mein gesamtes Homelab.

Ich kann mir Homelabbing nicht anders vorstellen.

In dieser Phase meiner Homelab-Reise kann ich mir nicht vorstellen, Docker nicht zu verwenden. Ich kann nicht einmal zählen, wie viele Dienste ich bereits in Docker ausprobiert habe - nur um sie wenige Minuten später wieder zu deinstallieren, weil sie nicht das getan haben, was ich wollte.

Ohne Docker müsste ich die Software sowie alle ihre Abhängigkeiten installieren. Beim Deinstallieren müssten dann diese Abhängigkeiten entfernt werden - dabei bleiben fast immer noch verwaiste Konfigurationsdateien übrig.

Docker macht die Verwaltung meines Homelabs einfach - es ist definitiv das beste Tool für diese Aufgabe.

In Zukunft plane ich, Docker in einer hochverfügbaren Umgebung einzusetzen. Im Grunde werde ich drei Server mit ähnlichen Spezifikationen haben, auf denen jeweils Docker läuft. Portainer, mein bevorzugter Docker-Manager, wird die Dienste anschließend auf die verschiedenen Server verteilen.

Falls ich an einem Server arbeiten müsste, würden alle diese Dienste auf einen anderen Server migrieren und weiterhin laufen. Wenn der Server nach der Wartung wieder verfügbar wäre, könnte er erneut von Containern genutzt werden.

Ohne die Verwendung eines Application-Management-Systems wie Docker wäre das nicht möglich. Dank der Art und Weise, wie Docker mit Volumes und Speicher umgeht, werden bei einer Migration der Dienste auch alle Einstellungen, Konfigurationsdateien sowie der lokal genutzte Speicherplatz mitmigriert.

Docker ist für meine Setup absolut unverzichtbar - und ich glaube nicht, dass das in absehbarer Zeit sich ändern wird.

Nein, ich bin kein Entwickler - aber ich liebe Docker wirklich. Wenn Sie kein Entwickler sind, sollten Sie Docker auf jeden Fall ausprobieren; es wird Ihre Arbeitsumgebung zum Besseren verändern.


Beginnen Sie klein und klug.

Es gibt unzählige Docker-Container, die man ausprobieren kann - tatsächlich Zehntausende. Falls Ihnen das zu viel erscheint, sind Sie nicht allein. Hier sind einige meiner Lieblings-Docker-Container, die meiner Meinung nach in jedem Home-Lab vorhanden sein sollten - von einfachen Webseiten bis hin zu vollständigen Diensten.

Ähnliche Artikel