Ein Container ist eine leichtgewichtige, isolierte Laufzeitumgebung, in der Software mit allen nötigen Abhängigkeiten ausgeführt wird – inklusive Code, Laufzeit, System-Tools und Bibliotheken. Im Gegensatz zu virtuellen Maschinen teilen Container denselben Betriebssystemkern, sind aber deutlich ressourcensparender.
Merkmale von Containern
- Portabel: Einmal gebaut, überall lauffähig
- Schnell startklar: Container starten in Sekunden
- Isolation: Anwendungen laufen unabhängig voneinander
- Reproduzierbar: Gleiche Umgebung auf verschiedenen Systemen
Typische Einsatzgebiete
- Microservices: Verteilte Anwendungen aus vielen Containern
- DevOps & CI/CD: Automatisiertes Testen, Bauen und Bereitstellen
- Cloud-Umgebungen: Skalierbare Anwendungen in der Cloud
- Entwicklungsumgebungen: Gleiche Bedingungen für Entwicklerteams
Bekannte Container-Technologien
- Docker: Der de-facto-Standard für Container
- Podman: Docker-kompatibel, aber daemonlos
- Kubernetes: Orchestrierung und Verwaltung großer Container-Infrastrukturen
Unterschied zu virtuellen Maschinen
- VMs: Vollständiges Betriebssystem, langsamer Start, mehr Ressourcenverbrauch
- Container: Gemeinsamer Kernel, schnelle Bereitstellung, geringere Last