Ein Container ist eine isolierte Ausführungsumgebung, die einen einzelnen Prozess oder eine kleine Prozessgruppe samt aller benötigten Bibliotheken, Konfigurationen und Abhängigkeiten kapselt. Im Linux-Umfeld basieren Container auf Kernel-Mechanismen wie Namespaces (zur Isolation von PID, Netzwerk, Mounts, Benutzern, IPC und UTS), Control Groups (cgroups, zur Begrenzung von CPU, RAM, I/O) und Capabilities. Im Gegensatz zu virtuellen Maschinen teilen sich Container den Kernel des Hostsystems, was sie deutlich leichter, schneller startend und ressourcenärmer macht.
Eingesetzt werden Container als Standard-Liefereinheit moderner Software: Microservices in Cloud-Plattformen, Build- und Test-Umgebungen in CI/CD-Pipelines, lokale Entwicklungs-Setups (Dev Containers), Wissenschafts-Workloads und reproduzierbare Forschungsumgebungen sowie als Bausteine in Edge- und IoT-Szenarien. Image-Formate wie OCI-Images sind herstellerneutral standardisiert und lassen sich in beliebigen Registries und Runtimes (containerd, CRI-O, Podman, Kata Containers) verwenden.
Der Einsatzzweck und das gelöste Problem ergeben sich aus den klassischen Herausforderungen mit virtuellen Maschinen und Bare-Metal-Servern: hoher Ressourcenverbrauch pro Workload, lange Start-Zeiten, manuelles Konfigurationsmanagement und schwer reproduzierbare Umgebungen. Container reduzieren den Overhead drastisch — eine Container-Instanz startet in Millisekunden, belegt häufig nur einige zehn Megabyte RAM für die Laufzeitumgebung — und liefern gleichzeitig eine identische, deklarativ beschriebene Umgebung über alle Stages hinweg.
Historisch sind Container deutlich älter als die heutige Container-Welle. Bereits Solaris Zones (2004), FreeBSD Jails (2000) und chroot (1979) implementierten verwandte Isolationsideen. Auf Linux entstanden zwischen 2006 und 2013 die zentralen Bausteine: Control Groups (Paul Menage und Rohit Seth, Google, ab 2007 im Mainline-Kernel), Namespaces (schrittweise erweitert seit Linux 2.4) und LXC als erste integrierte Container-Lösung. 2013 brachte Docker die UX-Revolution, 2015 etablierte die Open Container Initiative das OCI-Image- und -Runtime-Format als Industriestandard. Windows-Container wurden ab Windows Server 2016 eingeführt und nutzen analoge Mechanismen (Job Objects, Server Silos) auf Windows-Kernelebene.
Eingeführt wurde der Begriff "Container" im modernen IT-Sinn maßgeblich durch Solaris Zones und später Docker. Im Container-Umfeld kursiert seit Jahren das Bonmot "A container is just a process" — eine bewusst zugespitzte Beschreibung, die deutlich macht, dass Container im Kern keine eigene Technologie sind, sondern lediglich eine spezielle Konfiguration normaler Linux-Prozesse mit aktivierten Namespaces und Control Groups. Diese Verkürzung ist didaktisch hilfreich und gleichzeitig ein wichtiges Sicherheitsargument: Wer Container für eine vollwertige Isolation hält und sie wie VMs behandelt, übersieht die geteilte Kernel-Angriffsfläche und das damit verbundene Risiko bei Container-Escapes.