Container sind Softwarepakete, die alle notwendigen Elemente enthalten, um in jeder Umgebung ausgeführt werden zu können. Auf diese Weise virtualisieren Container das Betriebssystem und können überall ausgeführt werden, von einem privaten Rechenzentrum bis zur öffentlichen Cloud oder sogar auf dem persönlichen Laptop eines Entwicklers.
Container sind leichtgewichtige Pakete einer Applikation zusammen mit Abhängigkeiten, wie z. B. bestimmte Versionen von Laufzeitumgebungen, Bibliotheken und Servern (Web-, Datenbanken, Firewalls usw).
Die Containerisierung erlaubt für eine klare Trennung der Zuständigkeiten, weil sich die Entwickler auf die Anwendungslogik und die Abhängigkeiten konzentrieren, während sich die Systemtechniker auf die Bereitstellung und die Verwaltung konzentrieren können.
Container können praktisch überall ausgeführt werden, was die Entwicklung und Bereitstellung erheblich erleichtert: Container können auf weit verbreitete Betriebssysteme (Linux, Max, Windows), auf virtuellen Maschinen oder physischen Servern (unabhängig von der darunter liegenden Hardware) und in der Cloud deployed werden.
Container virtualisieren CPU-, Speicher-, Storage- und Netzwerkressourcen auf Betriebssystemebene und bieten Entwicklern eine von anderen Anwendungen logisch isolierte Sicht auf das Betriebssystem.
{{themen/01/img/container-deployment.png?400|}} <small>Abb-1: Container deployment in eine Registry (Software Hub)</small>
Container bieten einen logischen Paketierungsmechanismus, mit dem Anwendungen von der Umgebung, in der sie tatsächlich ausgeführt werden, abstrahiert werden können. Durch diese Entkopplung können Container-basierte Anwendungen einfach und konsistent bereitgestellt werden, unabhängig davon, ob es sich bei der Zielumgebung um ein privates Rechenzentrum, eine öffentliche Cloud oder sogar um den persönlichen Laptop eines Entwicklers handelt.
Deshalb werden Container für …