Kubernetes vs Docker ist eine der meistgestellten Fragen unter Entwicklern, und fast jedes Mal steckt ein Missverständnis dahinter. Die beiden Werkzeuge stehen gar nicht im direkten Wettbewerb. Sie lösen unterschiedliche Probleme auf unterschiedlichen Ebenen, und in großen Systemen laufen sie sogar Seite an Seite. Wer den Unterschied einmal sauber verstanden hat, trifft bei der eigenen Infrastruktur deutlich bessere Entscheidungen und spart sich Wochen an unnötigem Betriebsaufwand.
In diesem Artikel klären wir, was Docker und was Kubernetes wirklich tun, woher die Verwirrung stammt (Stichworte: Docker Swarm und die Entfernung des dockershim) und warum die meisten kleinen Teams weder das eine noch das andere selbst betreiben müssen.
Kurz gesagt: Docker und Kubernetes sind keine Konkurrenten. Docker baut und startet einzelne Container auf einem einzelnen Host. Kubernetes orchestriert viele Container über viele Hosts hinweg und hält sie am Laufen. Häufig werden beide zusammen genutzt. Für kleine Teams ist meist keines von beiden nötig: Eine PaaS betreibt Ihre Container, ohne dass Sie ein Cluster verwalten müssen.
Was ist Docker?
Docker ist das Werkzeug, mit dem Sie eine Anwendung in einen Container packen. Aus einem Dockerfile baut Docker ein Image, also ein unveränderliches Paket, das Ihren Code, die Laufzeitumgebung und alle Abhängigkeiten enthält. Dieses Image startet auf jedem Rechner identisch, egal ob auf Ihrem Laptop oder auf einem Server im Rechenzentrum.
Docker ist eine Plattform, die Anwendungen samt ihrer Abhängigkeiten in Container verpackt. Aus einem Dockerfile entsteht ein unveränderliches Image, das auf jedem Host identisch startet. Docker baut und betreibt einzelne Container, kümmert sich aber nicht um deren Verteilung über mehrere Server.
Der wichtige Punkt: Docker denkt in einzelnen Containern auf einem einzelnen Host. Sie können mit Docker (und ergänzend mit Docker Compose) mehrere Container auf einem Rechner starten und miteinander verbinden. Was Docker allein Ihnen nicht abnimmt, ist die Verteilung über viele Server, das automatische Umschichten bei einem Serverausfall oder das kontrollierte Ausrollen neuer Versionen im großen Maßstab.
Was ist Kubernetes?
Kubernetes (oft als „K8s" abgekürzt) setzt genau dort an, wo Docker aufhört. Es ist kein Ersatz für Docker, sondern eine Ebene darüber. Kubernetes nimmt fertige Container-Images und entscheidet, auf welchem Server sie laufen, wie viele Kopien es gibt und was passiert, wenn ein Server oder eine Instanz ausfällt.
Kubernetes ist ein Orchestrierungssystem für Container. Es verteilt Container auf einen Cluster aus mehreren Knoten, startet abgestürzte Instanzen neu, verteilt die Last und rollt Updates schrittweise aus. Kubernetes baut selbst keine Images, sondern verwaltet den Betrieb bereits gebauter Container im großen Maßstab.
Ein Kubernetes-Cluster besteht aus einer Steuerungsebene (Control Plane) und mehreren Arbeitsknoten (Nodes). Sie beschreiben in YAML-Dateien den gewünschten Zustand, etwa „ich möchte drei Kopien dieses Containers", und Kubernetes sorgt selbstständig dafür, dass dieser Zustand erhalten bleibt. Fällt ein Knoten aus, verschiebt es die betroffenen Container auf einen gesunden Knoten. Eine ausführliche Erklärung des Modells finden Sie in der offiziellen Kubernetes-Dokumentation.
Diese Macht hat ihren Preis: Ein Cluster will installiert, aktualisiert, abgesichert und überwacht werden. Netzwerk, Speicher, Zertifikate und Zugriffsrechte müssen konfiguriert werden. Das ist ein eigenständiges Fachgebiet.
Warum „Kubernetes vs Docker" die falsche Frage ist
Die Gegenüberstellung entstand aus einem historischen Zufall. Als Container populär wurden, brachte Docker mit Docker Swarm ein eigenes Orchestrierungswerkzeug heraus. Swarm war der eigentliche direkte Konkurrent zu Kubernetes, denn beide lösen dasselbe Problem: viele Container über viele Hosts verwalten. Kubernetes setzte sich in diesem Rennen durch, und Swarm spielt heute kaum noch eine Rolle. Aus „Kubernetes vs Docker Swarm" wurde im Sprachgebrauch verkürzt „Kubernetes vs Docker", und damit ein irreführender Vergleich.
Für zusätzliche Verwirrung sorgte 2022 die Entfernung des sogenannten dockershim. Kubernetes sprach früher über diese Zwischenschicht direkt mit der Docker Engine. Mit Version 1.24 wurde der dockershim entfernt und Kubernetes nutzt seitdem Laufzeiten, die dem CRI-Standard folgen (etwa containerd). Viele lasen daraus fälschlich „Kubernetes unterstützt Docker nicht mehr". Tatsächlich funktionieren Ihre mit Docker gebauten Images weiterhin problemlos, denn sie folgen dem offenen OCI-Standard. Der offizielle Dockershim-FAQ von Kubernetes stellt genau das klar.
Kurz: Sie bauen Ihr Image mit Docker und lassen es von Kubernetes betreiben. Das ist keine Entweder-oder-Entscheidung, sondern eine Arbeitsteilung.
Docker allein, Kubernetes oder PaaS im Vergleich
Für ein reales Projekt lautet die praktische Frage nicht „Docker oder Kubernetes", sondern: Wie bekomme ich meine Container zuverlässig ins Netz und halte sie am Laufen? Es gibt drei gängige Wege.
| Kriterium | Docker allein | Kubernetes | PaaS (z. B. Out Plane) |
|---|---|---|---|
| Grundaufgabe | Container bauen und starten | Container über viele Hosts orchestrieren | Code oder Image bereitstellen und betreiben lassen |
| Anzahl Hosts | Ein einzelner Server | Ein Cluster aus vielen Knoten | Von Ihnen nicht sichtbar, wird verwaltet |
| Neustart bei Absturz | Manuell oder per Restart-Regel | Automatisch, integriert | Automatisch, integriert |
| Kontrolliertes Ausrollen | Nicht enthalten | Umfangreich (Rolling Updates) | Neue Version pro Push, automatisch |
| Betriebsaufwand | Sie betreiben den Server | Sie betreiben den ganzen Cluster | Keiner, die Plattform übernimmt ihn |
| Lernkurve | Gering | Hoch | Sehr gering |
| Datenbank | Selbst betreiben | Selbst betreiben | Verwaltetes PostgreSQL inklusive |
| Ideal für | Lokale Entwicklung, ein kleiner Dienst | Große Teams, komplexe Systeme | Kleine bis mittlere Teams ohne Ops-Kapazität |
Die Tabelle zeigt das eigentliche Spannungsfeld. Docker allein ist perfekt für die Entwicklung, aber der Produktivbetrieb bleibt Handarbeit. Kubernetes löst den Produktivbetrieb umfassend, verlangt dafür aber ein Team, das den Cluster beherrscht. Eine PaaS nimmt Ihnen die Orchestrierung ab, ohne dass Sie ein Cluster besitzen oder verstehen müssen. Was eine PaaS grundsätzlich ausmacht, erklären wir in unserem Beitrag Was ist eine PaaS?.
Was ein kleines Team wirklich braucht
Hier ist die unbequeme Wahrheit, die in vielen Tutorials untergeht: Die allermeisten Teams brauchen Kubernetes nicht. Sie brauchen keinen Cluster, keine Steuerungsebene und keine YAML-Landschaft. Sie brauchen schlicht ihre Container zuverlässig im Netz, mit HTTPS, einer Datenbank daneben und einem Neustart, wenn etwas abstürzt.
Kubernetes rechtfertigt seinen Betriebsaufwand erst ab einer gewissen Größe: viele Dienste, mehrere Teams, komplexe Abhängigkeiten und dedizierte Betriebskapazität. Solange Sie einen einzelnen Cluster nur betreiben, um zwei oder drei Container laufen zu lassen, zahlen Sie einen hohen Preis für Fähigkeiten, die Sie nicht nutzen.
Genau in diese Lücke zielt eine PaaS. Bei Out Plane schieben Sie Ihren Code oder ein Dockerfile hoch, die Plattform baut daraus ein Image, startet es und vergibt automatisch HTTPS. Ihre Anwendung ist unter einer URL nach dem Muster {name}-{port}-{teamSlug}.outplane.app erreichbar. Daneben steht ein verwaltetes PostgreSQL mit Backups, Point-in-Time-Recovery und Read Replicas. Kein Cluster, keine Control Plane, kein dockershim, um den Sie sich sorgen müssten. Wenn Sie speziell Container in einer deutschen oder europäischen Region betreiben wollen, lesen Sie auch Docker-Hosting in Deutschland sowie unseren Überblick zu Cloud-Anbietern und Datenresidenz.
Ehrliche Einordnung: Wo die Grenze liegt
Damit hier kein falscher Eindruck entsteht: Out Plane ist kein vollwertiger Orchestrator und ersetzt Kubernetes nicht in jeder Hinsicht. Es gibt kein automatisches Skalieren (Autoscaling) und keine Skalierung auf null bei Inaktivität. Persistente Volumes und ein privates Netzwerk zwischen Ihren Diensten sind vorhanden, die Rechenleistung ist CPU-basiert (keine GPUs). Wer echte, dynamische Lastskalierung über hunderte Knoten oder ein hochspezialisiertes Betriebsmodell braucht, ist mit einem selbst betriebenen Kubernetes-Cluster besser bedient. Für den Alltag der meisten Web-Anwendungen und APIs deckt eine PaaS den Bedarf jedoch vollständig ab, und das ohne Betriebspersonal.
Häufig gestellte Fragen
Ist Kubernetes besser als Docker?
Die Frage ergibt so keinen Sinn, weil beide unterschiedliche Aufgaben haben. Docker baut und startet einzelne Container, Kubernetes verteilt und verwaltet viele davon über mehrere Server. Sie ergänzen sich: Sie bauen Ihr Image mit Docker und lassen Kubernetes es im großen Maßstab betreiben. Keines ist „besser".
Kann man Kubernetes ohne Docker nutzen?
Ja. Kubernetes benötigt eine Container-Laufzeit, die dem CRI-Standard folgt, etwa containerd. Seit Version 1.24 nutzt es nicht mehr die Docker Engine über den dockershim. Ihre mit Docker gebauten Images laufen trotzdem einwandfrei, weil sie dem offenen OCI-Standard entsprechen und laufzeitunabhängig sind.
Was ist mit dem „dockershim" passiert?
Der dockershim war eine Zwischenschicht, über die Kubernetes früher mit der Docker Engine kommunizierte. Er wurde in Kubernetes 1.24 entfernt, weil es inzwischen einen sauberen Standard (CRI) gibt. Für Sie ändert sich nichts an der Erstellung Ihrer Images. Nur der Cluster spricht intern mit einer anderen Laufzeit.
Was ist Docker Swarm?
Docker Swarm ist der hauseigene Orchestrator von Docker und war der eigentliche direkte Konkurrent zu Kubernetes. Beide verteilen Container über mehrere Hosts. Kubernetes hat sich am Markt durchgesetzt, weshalb Swarm heute kaum noch eingesetzt wird. Der populäre Vergleich „Kubernetes vs Docker" meint historisch eigentlich „Kubernetes vs Docker Swarm".
Brauche ich Kubernetes für ein kleines Projekt?
In der Regel nicht. Ein einzelner Cluster für zwei oder drei Container bedeutet viel Betriebsaufwand für Fähigkeiten, die Sie nicht nutzen. Kubernetes lohnt sich bei vielen Diensten, mehreren Teams und dedizierter Betriebskapazität. Für kleine Projekte reicht Docker in der Entwicklung und eine PaaS für den Produktivbetrieb völlig aus.
Was ist der Unterschied zwischen Docker Compose und Kubernetes?
Docker Compose beschreibt und startet mehrere Container auf einem einzelnen Host, ideal für lokale Entwicklung. Kubernetes verteilt Container über viele Hosts, startet Ausgefallenes neu und rollt Updates schrittweise aus. Compose kennt keine Selbstheilung über Server hinweg. Kubernetes ist für den verteilten Produktivbetrieb im großen Maßstab gedacht.
Was ist eine PaaS und wie passt sie ins Bild?
Eine PaaS (Platform as a Service) betreibt Ihre Anwendung, ohne dass Sie Server oder einen Cluster verwalten. Sie liefern Code oder ein Dockerfile, die Plattform baut, startet und hält den Container am Laufen, samt HTTPS und Datenbank. Damit erhalten Sie den Nutzen der Orchestrierung ohne deren Komplexität und Betriebslast.
Ersetzt Out Plane Kubernetes?
Für die meisten Web-Anwendungen und APIs ja, für alle Fälle nein. Out Plane baut und betreibt Ihre Container samt verwaltetem PostgreSQL, persistenten Volumes und privatem Netzwerk, ganz ohne Cluster. Es ist jedoch kein vollwertiger Orchestrator: Es gibt kein Autoscaling und keine Skalierung auf null. Für dynamische Großskalierung bleibt selbst betriebenes Kubernetes die Wahl.
Fazit
Die Debatte Kubernetes vs Docker beruht auf einem Missverständnis. Docker baut und startet einzelne Container, Kubernetes orchestriert viele Container über viele Hosts, und beide arbeiten zusammen statt gegeneinander. Der historische Rivale von Kubernetes war Docker Swarm, nicht Docker selbst, und die Entfernung des dockershim ändert nichts daran, dass Ihre Docker-Images überall laufen. Weitere Details zu den Grundlagen liefert die offizielle Docker-Dokumentation.
Die wichtigere Frage lautet: Wollen Sie einen Cluster betreiben oder einfach nur, dass Ihre Container laufen? Für die meisten kleinen und mittleren Teams ist die Antwort klar. Sie brauchen kein Kubernetes, sondern eine Plattform, die den Betrieb übernimmt. Erstellen Sie Ihr erstes Projekt in wenigen Minuten in der Konsole unter https://console.outplane.com. Der Hobby-Tarif ist dauerhaft kostenlos und Sie starten mit 20 Dollar Startguthaben ganz ohne Kreditkarte. Alle weiteren Konditionen finden Sie unter /pricing.