Was ist ein Container?

Ein Container ist eine Virtualisierungstechnologie, die entwickelt wurde, um einen portierbaren Formfaktor für Anwendungen zu schaffen und zu unterstützen – mit anderen Worten, um es zu vereinfachen, eine Anwendung auf einer Reihe von verschiedenen Plattformen einzusetzen. Ein Container verpackt alle Anforderungen für die Anwendung – den Anwendungscode selbst, Abhängigkeiten wie Bibliotheken, die die Anwendung zur Ausführung benötigt, und die Laufzeitumgebung für die Anwendung und ihre Abhängigkeiten – in einen Formfaktor, der unabhängig über Plattformen transportiert und ausgeführt werden kann. Container sind die Abstraktion einer Anwendung von der typischen Betriebssystem-Laufzeitumgebung.

Docker ist das bekannteste Container-Implementierungsformat; es gibt jedoch auch andere Container-Technologien wie rkt/CoreOS, containerd, Hyper‑V Container und Technologien auf niedrigerer Ebene wie cgroups und Namespaces (Beide werden ähnlich wie Container-Engines zur Anwendungsisolation verwendet, bieten jedoch nicht die gleiche isolierte Portabilität wie Container). Sie können Plattform-Tools wie Docker oder rkt verwenden, um Container direkt zu verwalten, aber die meisten Bereitstellungen verwenden ein Orchestrierungs-Tool wie Kubernetes für die Container-Verwaltung. Kubernetes ist zwar nicht erforderlich, wird jedoch immer mehr zum Standard-Tool für produktionsreife Container-Bereitstellungen.

Container sind zu einer sehr beliebten architektonischen Wahl geworden, da sie es ermöglichen, eine Anwendung in kleinere, diskrete Komponenten aufzuteilen, was eine Aufteilung zwischen den Eigentümern der Infrastruktur und den Entwicklern erlaubt. Dies ist während der Entwicklung von Vorteil, da es bedeutet, dass getrennte Teams parallel an den verschiedenen Komponenten arbeiten können, aber auch während der Bereitstellung, da es die Transportierbarkeit eines bestimmten Containers zwischen verschiedenen Plattformen ermöglicht. Container bieten auch ein optimiertes Werkzeug für Anwendungs- und Infrastrukturmanager, da sie unveränderliche Plattformen bereitstellen können, die es den Entwicklern ermöglichen, Anwendungscontainer für eine Reihe von bekannten Anforderungen zu veröffentlichen, ohne diese Anforderungen zu besitzen.

Der Begriff Anwendungs-Containerisierung wird häufig verwendet, um den Prozess der Migration einer Anwendung von einer Standard-Linux-Laufzeitumgebung zu einem in sich geschlossenen Formfaktor zu bezeichnen, der in vielen Umgebungen ausgeführt werden kann. Viele Unternehmen sind auf dem besten Weg zur Containerisierung und haben bereits mit der Migration zu einfachen Containern oder einer umfassenderen Containerverwaltungsstrategie mit einem Tool wie Kubernetes begonnen.

Wie kann NGINX helfen?

Alle NGINX-Produkte können entweder in Containern ausgeführt werden – einschließlich NGINX Open SourceNGINX Plus (optional mit NGINX App Protect), NGINX UnitNGINX Service MeshNGINX Ingress Controller – oder basieren auf Container-Technologien (NGINX Controller).

Setzen Sie sich noch heute mit uns in Verbindung und erfahren Sie, wie wir Sie bei der Bereitstellung moderner Anwendungen unterstützen können.