Containerisierung ist das Verpacken einer Anwendung mit ihren Abhängigkeiten in standardisierte Container-Images, die in beliebigen Umgebungen identisch ausgeführt werden können. Container teilen sich den Kernel des Hosts, sind aber durch Linux-Namespaces und cgroups gegeneinander isoliert.
In der Praxis nutzen Teams Docker, Podman oder Buildah zum Bauen von Images, OCI als Standardformat sowie Plattformen wie Kubernetes, Docker Swarm oder Cloud-Dienste (Azure Container Apps, AWS ECS, Cloud Run) zum Betreiben. Container Registries wie Docker Hub, GHCR oder Azure Container Registry verteilen die Images.
Einsatzzweck ist die Vereinheitlichung von Entwicklungs-, Test- und Produktionsumgebungen, die einfache Skalierung sowie die Modernisierung von Anwendungen für Cloud-Native-Plattformen. Containerisierung ist ein häufiger erster Schritt in Modernisierungsprogrammen, bevor weitere Architekturveränderungen erfolgen.
Docker brachte 2013 Containerisierung in die Breite, basierend auf Linux-Kernel-Funktionen, die seit den 2000er Jahren existierten (FreeBSD Jails, Solaris Zones, LXC). Mit Kubernetes (Google, ab 2014) etablierte sich eine Plattformschicht für die Orchestrierung im Großen, die heute De-facto-Standard ist.
In der Praxis wird Containerisierung oft mit "Dockerisierung" gleichgesetzt, ist aber technologieagnostisch standardisiert (OCI). Bemerkenswert: Solomon Hykes' Container-Demo auf der PyCon 2013 dauerte nur fünf Minuten – und veränderte trotzdem nachhaltig, wie Software entwickelt und betrieben wird.