
Docker-Container
Ein Docker-Container ist ein Programm samt allem, was es zum Laufen braucht, in einem abgeschlossenen Paket. Dadurch verhält es sich auf jedem Computer gleich – egal ob auf einem Laptop oder auf einem Server im Rechenzentrum.
Ein Programm läuft selten allein. Es braucht bestimmte Hilfsprogramme, bestimmte Versionen davon und bestimmte Einstellungen des Betriebssystems. Fehlt eines davon, startet es nicht oder verhält sich anders als erwartet. Ein Docker-Container löst dieses Problem, indem er das Programm zusammen mit all diesen Zutaten in ein einziges Paket packt. Dieses Paket kann man auf einen anderen Rechner kopieren und dort starten, ohne etwas nachzuinstallieren. Docker ist dabei der Name der Software, die solche Pakete erzeugt und ausführt; sie hat die Technik ab 2013 populär gemacht.
Das Ende von “Bei mir läuft es doch”
Der klassische Streit in der Softwareentwicklung geht so: Ein Entwickler schreibt ein Programm, auf seinem Laptop funktioniert alles. Auf dem Server der Firma stürzt es ab. Der Grund ist fast nie das Programm selbst, sondern die Umgebung drumherum. Auf dem Laptop lag eine neuere Version einer Hilfsbibliothek, auf dem Server eine ältere. Container beenden diesen Streit, weil die Umgebung mitgeliefert wird.
Für Unternehmen zählt vor allem die Geschwindigkeit. Ein Container startet in Sekundenbruchteilen. Wenn abends plötzlich zehnmal so viele Leute einen Onlineshop besuchen, startet das Rechenzentrum einfach hundert zusätzliche Kopien desselben Containers. Sinkt der Andrang, werden sie wieder abgeschaltet. Diese Flexibilität ist die Grundlage dafür, dass große Dienste überhaupt bezahlbar bleiben.
In der KI-Welt kommt ein weiterer Punkt dazu: Nachvollziehbarkeit. KI-Software hängt von sehr vielen exakten Versionsnummern ab. Wer ein Ergebnis ein Jahr später überprüfen will, braucht genau dieselbe Umgebung. Ein Container konserviert sie.
Image, Container und der gemeinsame Systemkern
Am Anfang steht ein Rezept, eine simple Textdatei. Darin steht Zeile für Zeile, was in das Paket gehört: welches Grundsystem, welche Zusatzprogramme, welcher eigene Code. Aus diesem Rezept baut Docker ein Image. Ein Image ist die unveränderliche Vorlage, vergleichbar mit einer Druckvorlage. Startet man das Image, entsteht daraus ein laufender Container. Aus einer Vorlage lassen sich beliebig viele Container gleichzeitig starten.
Wichtig ist die Abgrenzung zur virtuellen Maschine. Eine virtuelle Maschine simuliert einen kompletten zweiten Computer inklusive eigenem Betriebssystem. Das kostet mehrere Gigabyte Speicher und Minuten beim Start. Ein Container teilt sich dagegen den Systemkern des Wirtsrechners, also den innersten Teil des Betriebssystems. Er enthält nur die Schichten darüber. Deshalb ist er oft nur einige hundert Megabyte groß.
Ein verbreiteter Irrtum ist, Container seien vollständig voneinander abgeschottet. Sie sind getrennt, aber sie hängen am selben Systemkern. Wer maximale Sicherheit zwischen fremden Kunden braucht, kombiniert Container deshalb häufig doch mit virtuellen Maschinen. Ein zweiter Irrtum: Container merken sich nichts. Löscht man einen Container, sind Änderungen darin weg. Daten müssen bewusst in einen angehängten Speicherbereich geschrieben werden.
Vom Handyfoto-Dienst bis zum KI-Rechenzentrum
Fast jeder große Onlinedienst läuft heute in Containern. Wenn du ein Video streamst, eine Nachricht verschickst oder eine Banking-App öffnest, antworten dir im Hintergrund Container. Verwaltet werden sie meist von Kubernetes, einer Software, die tausende Container automatisch verteilt, überwacht und bei Ausfällen neu startet. In Stellenanzeigen tauchen Docker und Kubernetes deshalb fast immer gemeinsam auf.
Auch beim Ausprobieren von KI-Modellen begegnet dir der Begriff. Anbieter von Grafikkarten und Cloud-Diensten liefern fertige Images aus, in denen alle Treiber und Bibliotheken bereits passen. Statt einen Nachmittag mit Installation zu verbringen, startet man einen Container und legt los.
In Wirtschaftsnachrichten taucht das Thema als Kostenfrage auf. Container erlauben es, Serverkapazität feiner aufzuteilen und dadurch besser auszulasten. Deshalb sind Container die Grundlage moderner Cloud-Angebote, bei denen man nur die tatsächlich genutzte Rechenzeit bezahlt.