Was ist Containerisierung?

Aktualisiert: September 2026

Containerisierung ist eine Methode, eine App mit allen Abhängigkeiten in eine isolierte Einheit zu verpacken, die auf jedem Host identisch läuft. Sie beendet den ältesten Bug-Report der Softwaregeschichte – “Auf meinem Rechner läuft es” –, indem sie die relevanten Teile des Rechners gleich mit dem Code ausliefert, in einer Kiste, die so standardisiert ist, dass jede Infrastruktur sie ausführen kann.

Das Wichtigste in Kürze

FrageAntwort
Was es istApp + Abhängigkeiten in einer portablen, isolierten Einheit
vs. virtuelle MaschinenVMs virtualisieren Hardware (GB, Minuten); Container teilen sich den Betriebssystem-Kernel (MB, Millisekunden)
Unter der HaubeKernel-Namespaces (Isolation) + cgroups (Limits) + geschichtete Dateisysteme
Warum es portabel istDer offene OCI-Standard – jede konforme Engine startet jedes Image
Wohin es führtOrchestrierung (Kubernetes) im großen Maßstab; Serverless als Schicht darüber

Die ganze Idee in sechs Zeilen

Ein Container-Image wird in einer schlichten Build-Datei definiert – diese hier verpackt eine vollständige Node.js-API:

FROM node:22-slim              # von einem Basis-Image ausgehen (gecachte Schicht)
WORKDIR /app
COPY package*.json ./
RUN npm ci --omit=dev          # jede Anweisung fügt eine schreibgeschützte Schicht hinzu
COPY . .
CMD ["node", "server.js"]      # was beim Start des Containers ausgeführt wird
$ docker build -t api:1.0 .    # Image bauen
$ docker run -p 8080:8080 api:1.0   # starten – identisch, überall

Clients wissen natürlich nie, welcher Container ihnen antwortet, und es ist ihnen auch egal – genau darum kombiniert man containerisierte (oder vollständig verwaltete) Backends mit einem stabilen API-Vertrag:

// JavaScript / Node.js — Back4app JS SDK
// Clients never know (or care) what container runs the backend
const query = new Parse.Query('Build');
query.equalTo('status', 'passing');
const builds = await query.find();
console.log(`${builds.length} green builds`);

Container vs. virtuelle Maschinen

Container im Vergleich zu virtuellen MaschinenVirtuelle Maschinen stapeln Gastbetriebssysteme auf einem Hypervisor über der Hardware; Container teilen sich über eine Container-Engine einen einzigen Host-Kernel und sind dadurch kleiner und schneller gestartet.

Container

App A + Bibliotheken

App B + Bibliotheken

Container-Engine · gemeinsamer Host-Kernel

Hardware + Host-OS

Virtuelle Maschinen

App A + Gast-OS

App B + Gast-OS

Hypervisor

Hardware

Virtuelle Maschinen stapeln Gastbetriebssysteme auf einem Hypervisor über der Hardware; Container teilen sich über eine Container-Engine einen einzigen Host-Kernel und sind dadurch kleiner und schneller gestartet.
DimensionVirtuelle MaschineContainer
VirtualisiertHardware (per Hypervisor)Das Betriebssystem
KernelEiner pro VMMit dem Host geteilt
GrößeGigabytesMegabytes
StartzeitMinutenMillisekunden bis Sekunden
Dichte pro Host~Dutzende~Hunderte
Stärke der IsolationHardware-Grenze – stärkerKernel-Grenze – schwächer
Am besten fürNicht vertrauenswürdige/Multi-Tenant-Workloads, vollständiges Betriebssystem nötigPaketierung, Dichte, CI/CD, Microservices

Die beiden ergänzen sich, statt zu konkurrieren: Die überwältigende Mehrheit der Produktions-Container läuft innerhalb von VMs – die VM trennt die Tenants für den Cloud-Anbieter, der Container verpackt die App für das Team. Für nicht vertrauenswürdigen Code bieten Micro-VMs den Mittelweg: Hardware-Isolation bei nahezu Container-Startgeschwindigkeit.

Unter der Haube, verständlich erklärt

Ein Container ist kein besonderes Kernel-Objekt – er ist ein gewöhnlicher Prozess, dem der Kernel drei Schichten Isolation überzieht. Namespaces geben ihm eine private Sicht auf die Welt: eine eigene Prozessliste, einen eigenen Netzwerk-Stack, eine eigene Mount-Tabelle und eigene Benutzer-IDs. Cgroups setzen ihm ein Budget: harte Obergrenzen für CPU, Arbeitsspeicher und I/O. Geschichtete Dateisysteme setzen seine Festplatte aus den schreibgeschützten Schichten des Images plus einer beschreibbaren Schicht obendrauf zusammen – deshalb belegen zehn Container aus demselben Image kaum mehr Speicherplatz als einer. Ohne das Tooling war chroot plus Ressourcenlimits schon immer das Grundgerüst; die Revolution von 2013 bestand darin, diese Fähigkeiten in ein Image-Format zu packen, das jeder bauen, teilen und starten kann – seit 2015 standardisiert durch die drei Spezifikationen der OCI (Image, Runtime, Verteilung), die garantieren, dass Containerisierung keinem einzelnen Hersteller gehört. Die Ahnenreihe: chroot (1979) → BSD-Jails und Betriebssystem-Zonen (2000er-Jahre) → Kernel-cgroups (2006) → LXC (2008) → die moderne Container-Ära (2013).

Typische Anwendungsfälle

  • Reproduzierbare Umgebungen. Entwicklung, CI und Produktion laufen mit demselben Image – die ganze Klasse von Bugs durch auseinanderdriftende Umgebungen verschwindet.
  • CI/CD-Pipelines. Das einmal in der Pipeline gebaute Image ist das Artefakt, das überall hin weitergereicht wird; erst Container haben “einmal bauen, überall deployen” Wirklichkeit werden lassen.
  • Microservices. Ein Container pro Dienst ist die naheliegende Paketierung; die Orchestrierung verwaltet anschließend die gesamte Flotte.
  • Paketierung von Altanwendungen. Alte Apps mit fragilen Abhängigkeiten werden in Images eingefroren und laufen sicher auf moderner Infrastruktur weiter.
  • Dichte und Kosten. Hunderte Container pro Host, wo nur Dutzende VMs Platz finden – eine dichtere Auslastung, die sich direkt in niedrigeren Rechnungen niederschlägt.

Sollten Sie containerisieren? Eine Entscheidungsmatrix

Containerisieren Sie, wenn…Suchen Sie nach Alternativen, wenn…
Auseinanderdriftende Umgebungen Ihnen immer wieder Probleme machenDer Workload nicht vertrauenswürdiger Multi-Tenant-Code ist (nutzen Sie VMs/Micro-VMs)
Sie über CI/CD-Pipelines ausliefernDas Produkt eine Desktop-App oder Software auf Kernel-Ebene ist
Dienste sich in Entwicklung und Produktion identisch verhalten müssenDas Team rein im Frontend arbeitet und das Backend Standard ist
Sie auf Orchestrierung zusteuernEin verwaltetes Backend den Bedarf bereits abdeckt – nichts zu verpacken
Die Abhängigkeiten komplex oder widersprüchlich sindEin einzelnes statisches Binary genügen würde (Container bringen wenig)

Die letzten beiden Zeilen sind die ehrlichen, die in den meisten Übersichten fehlen: Containerisierung ist Paketierung, und Paketierung lohnt sich nur, wenn es etwas Eigenes zu verpacken gibt. Ein Standard-Backend, das als Dienst genutzt wird, macht das Artefakt komplett überflüssig.

Grenzen und Trade-offs

  • Sicherheit bei geteiltem Kernel. Die Isolationsgrenze ist der Kernel; für feindselige Workloads reicht das nicht – daher Micro-VMs und gehärtete Runtimes.
  • Images veralten. Ein Container friert seine Abhängigkeiten ein, Sicherheitslücken inklusive; Image-Scans und regelmäßige Rebuilds werden zur Daueraufgabe.
  • Zustandsbehaftete Workloads sind die Königsdisziplin. Container sind am liebsten wegwerfbar, Datenbanken nicht. Persistente Volumes und zustandsbehaftete Orchestrierung bleiben die heikelsten Stellen.
  • Die Registry ist kritische Infrastruktur. Wer Ihre Images hostet, kann Ihre Deployments lahmlegen; behandeln Sie sie mit derselben Sorgfalt wie Ihre Produktion.
  • Paketieren ist nicht Betreiben. Auch ein perfektes Image braucht Scheduling, Netzwerk, Skalierung und Monitoring – und so landen Teams, manchmal zu früh, bei Kubernetes.

Container mit Back4app

Back4app ist eine Open-Source-Plattform für Backend as a Service (BaaS), die eine verwaltete Datenbank, automatisch generierte REST- und GraphQL-APIs, Authentifizierung, Dateispeicher und Serverless-Funktionen mit Cloud Code kombiniert. Sie deckt beide Enden der obigen Entscheidungsmatrix ab: Für Workloads, die tatsächlich Ihre eigenen sind und verpackt werden müssen, deployt Back4app Containers jedes Image direkt aus einem Git-Repository – bauen, starten, skalieren, als verwalteter Dienst. Und für das Standard-Backend daneben gibt es bewusst nichts zu containerisieren: Datenbank, Authentifizierung und APIs sind bereits fertig bereitgestellt – die konsequenteste Form von “läuft auf jedem Rechner”, weil nichts mehr von Ihrem abhängt.

Häufige Fragen

Was ist Containerisierung, einfach erklärt?

Eine Anwendung wird zusammen mit allem, was sie braucht – Code, Runtime, Bibliotheken, Konfiguration –, in eine isolierte, portable Einheit verpackt, die auf einem Laptop, einem Server oder in jeder beliebigen Cloud gleich läuft. Der Name nimmt die Analogie zum Schiffscontainer wörtlich: eine standardisierte Kiste, die jedes Schiff, jeder Zug und jeder Lkw transportieren kann, unabhängig vom Inhalt.

Was ist der Unterschied zwischen einem Container und einer virtuellen Maschine?

Eine virtuelle Maschine virtualisiert Hardware: Jede VM bringt ein vollständiges Gastbetriebssystem mit eigenem Kernel mit – Gigabytes groß, Minuten bis zum Start. Ein Container virtualisiert auf Betriebssystemebene und teilt sich den Kernel des Hosts – Megabytes groß, Millisekunden bis zum Start. Die gängige Kurzformel: VMs abstrahieren die Hardware, Container abstrahieren das Betriebssystem.

Ist Docker dasselbe wie Containerisierung?

Nein – Docker ist das Werkzeug, das Containerisierung 2013 in den Mainstream gebracht hat, nicht das Konzept selbst. Die zugrunde liegende Kernel-Technologie ist Jahrzehnte älter, und alternative Engines und Runtimes (Podman, containerd, CRI-O, LXC) bauen und starten dieselben Images, weil Images dem offenen OCI-Standard folgen und nicht dem Format eines einzelnen Herstellers.

Was ist ein Container-Image?

Die unveränderliche Vorlage, aus der ein Container gestartet wird – das Image verhält sich zum Container wie die Klasse zur Instanz. Ein Image besteht aus einem Stapel schreibgeschützter Schichten (jede Build-Anweisung fügt eine hinzu), die gecacht und zwischen Images geteilt werden; zur Laufzeit kommt eine dünne beschreibbare Schicht obendrauf. Images liegen in Registries, aus denen jeder Host sie abrufen und starten kann.

Wie funktionieren Container unter der Haube?

Drei Kernel-Funktionen leisten die eigentliche Arbeit. Namespaces geben jedem Container eine eigene, private Sicht auf das System – Prozess-IDs, Netzwerkschnittstellen, Dateisysteme, Benutzer. Control Groups (cgroups) begrenzen, wie viel CPU und Arbeitsspeicher er verbrauchen darf. Und ein geschichtetes Union-Dateisystem setzt das Image effizient zusammen. Ein Container ist kein Objekt im Kernel – er ist ein Prozess, dem Isolation übergestülpt wurde.

Was ist die OCI?

Die Open Container Initiative – das Standardisierungsgremium (2015 unter dem Dach der Linux Foundation gegründet), das Container portabel hält. Ihre drei Spezifikationen decken Image-Format, Runtime-Verhalten und Image-Verteilung ab. Deshalb läuft ein Image, das mit einem Werkzeug gebaut wurde, auf jeder konformen Engine, Registry und jedem konformen Orchestrator. Die OCI ist der Grund, warum Containerisierung dem Lock-in eines einzelnen Herstellers entkommen ist.

Sind Container sicherer als virtuelle Maschinen?

VMs bieten die stärkere Grenze: getrennte Kernel hinter einem Hypervisor. Container teilen sich den Kernel des Hosts, sodass ein Kernel-Exploit theoretisch von einem Container in einen anderen übergreifen kann – relevant, wenn Sie nicht vertrauenswürdigen oder Multi-Tenant-Code ausführen. Den Mittelweg bildet die Micro-VM: Hardware-Isolation bei Startzeiten nahe an denen von Containern, heute gängige Praxis für nicht vertrauenswürdige Workloads. Für Ihre eigenen, vertrauenswürdigen Apps reicht die Container-Isolation in der Regel aus.

Ersetzen Container virtuelle Maschinen?

Nein – in der Produktion laufen sie ganz überwiegend in VMs. Branchenanalysen kommen durchweg zu dem Ergebnis, dass die große Mehrheit der Container auf VM-basierter Infrastruktur deployt wird: Die VM liefert dem Cloud-Anbieter harte Multi-Tenant-Isolation, die Container liefern dem Anwendungsteam Paketierung und Dichte. Es sind komplementäre Schichten, keine Konkurrenten.

Verwandte Begriffe

Vergleichen mit

Weiterführende Quellen

Bereit, Ihr Backend zu bauen?

Starten Sie Ihr Projekt auf Back4app in wenigen Minuten — Datenbank, Authentifizierung, APIs und Cloud Code inklusive. Keine Kreditkarte erforderlich.

Geschrieben und geprüft von Back4app Engineering, Back4app Engineering · Veröffentlicht am 2026-09-21