Das Container-Management hat große Fortschritte gemacht. Jahrzehntelang war die Verwaltung von Containerumgebungen eine relativ einfache Angelegenheit. Die moderne Idee eines Computercontainers tauchte erstmals in den 1970er Jahren auf, als das Konzept erstmals zur Definition von Anwendungscode auf Unix-Systemen verwendet wurde.
Die moderne Containerisierungstechnologie hat sich seit ihren frühen Anfängen stetig weiterentwickelt, und wenn Unternehmen heute Container einsetzen, erzielen sie einen viel höheren Nutzen für ihre Investition. Von kleinen Startups bis hin zu großen, etablierten Unternehmen – Container-Frameworks haben sich als äußerst fähig erwiesen, stabile Workflows mit optimierten Laufzeiten und kontinuierlicher Bereitstellung zu generieren.
Container sind ausführbare Softwareeinheiten, in denen der Anwendungscode mit seinen Bibliotheken und Abhängigkeiten verpackt ist. Sie werden auf standardisierte Weise verpackt, so dass der Code überall ausgeführt werden kann, ob auf dem Desktop, in der traditionellen IT oder der Cloud.
Dies geschieht durch eine Form der Betriebssystemvirtualisierung, bei der Funktionen des Betriebssystemkernels (z. B. Linux-Namespaces und Cgroups, Windows-Silos und Jobobjekte) genutzt werden können, um Prozesse zu isolieren und die Menge an CPU, Speicher und Festplatte zu steuern, auf die diese Prozesse zugreifen können.
Die Containertechnologie hat sich mit der Einführung von Docker im Jahr 2013 grundlegend verändert und hat auch in diesem Jahrzehnt unvermindert an Popularität und Benutzerakzeptanz gewonnen. Es bestand eindeutig eine starke, aber nicht erfüllte Nachfrage nach einer Containerisierungssoftware dieser Art, wie der schnelle Erfolg von Docker und seine inzwischen überwältigende Marktüberlegenheit belegen.
Eine IBM-Umfrage aus dem Jahr 2021 ergab, dass 61 % der Befragten angaben, in mindestens 50 % der neuen Anwendungen, die sie in den letzten 2 Jahren entwickelt hatten, Container verwendet zu haben. Eine noch größere Gruppe von Befragten (64 %) gab an, sie erwarte, Container für mindestens 50 % der Apps zu verwenden, die sie in den nächsten 2 Jahren erstellen werde.
Bei Containern geht es um die Verteilung und den Schutz von Daten und die Ausführung von Anwendungen. Daher ist es nur logisch, dass die IT-Branche der Hauptnutzer von Containerisierungssoftware ist, wobei die folgenden Branchen zu den drei Hauptnutzern gehören (Link befindet sich außerhalb von ibm.com):
Der Markt für Containeranwendungen wird derzeit von zwei Unternehmen dominiert:
Die am häufigsten verwendete Containerisierungsplattform ist Docker. Docker-Container wurden ursprünglich 2013 um die Docker Engine herum gebaut und laufen über eine Anwendungsprogrammierschnittstelle (API). Docker ist eigentlich eine Platform-as-a-Service (PaaS) und ihr Hauptvorteil ist ihre Flexibilität. Docker kann jede Anwendung und die damit verbundenen Abhängigkeiten in einen virtuellen Container umwandeln, der dann auf jedem Computer mit Windows, macOS oder Linux ausgeführt werden kann. Das System verwendet Docker-Images, d. h. schreibgeschützte Vorlagen, die für die Erstellung von Containern verwendet werden, und „Dockerfiles“, d. h. Textdateien, die Docker-Images begleiten und erläutern. Docker-Images und andere Container-Images benötigen Speicherplatz für die Ausführung. Dies wird von der Container-Runtime verwaltet – einer Softwarelösung, die mit dem Betriebssystem interagiert, um den erforderlichen Speicherplatz für die Ausführung von Container-Images bereitzustellen.
Die beliebteste Plattform zur Container-Orchestrierung ist Kubernetes, das 2014 von Google erstellt wurde und immer noch für die robuste Art und Weise bekannt ist, in der es die Bereitstellung von Software automatisiert, Skalierbarkeit ermöglicht und die Containerverwaltung unterstützt. Darüber hinaus ist Kubernetes ein Open-Source-System und fördert die rege Beteiligung von Mitwirkenden (die das Projekt jetzt beaufsichtigen), wobei jeder Softwareanbieter seine eigene Variante zu Kubernetes einsetzt. Bei einigen Diensten können Benutzer beispielsweise nicht nur Kubernetes-Cluster erstellen, sondern auch skalierbare Web-Apps bereitstellen und Protokolle analysieren.
Derzeit sind Docker und Kubernetes die mit Abstand am häufigsten verwendeten Tools im Umgang mit Computercontainern. Jüngsten Prognosen zur Containerisierung (Link führt zu einer Seite außerhalb von ibm.com) für 2024 zufolge kontrolliert Dockers jetzt beachtliche 82,8 % dieses Marktes, während Kubernetes einen Marktanteil von 11,52 % hat.
Weitere Informationen zum Zusammenhang zwischen Kubernetes und Docker finden Sie unter „Kubernetes vs. Docker: Warum nicht beides?“.
Es gibt keinen Mangel an entsprechenden Anwendungsfällen für Container, da diese insbesondere in Cloud-Computing-Umgebungen oder -Ökosystemen immer wichtiger werden. Viele Unternehmen ziehen Container sogar als Ersatz für virtuelle Maschinen (VMs) in Betracht, wenn es um die Wahl einer universellen Cloud-Computing-Plattform für ihre Anwendungen und Workloads geht. Aber innerhalb dieses sehr breiten Spektrums gibt es wichtige Anwendungsfälle, in denen cloudnative Container besonders relevant sind:
Container, Containerisierung oder Containerorchestrierung spielen auch eine Rolle in den folgenden verwandten Lösungen:
Es gibt zwei grundlegende Arten von Containern, die jeweils eine andere Gruppe von Containertechnologien bedienen:
Systemcontainer, die auch als „Betriebssystemcontainer“ bezeichnet werden, ermöglichen die gleichzeitige Ausführung vieler verschiedener Prozesse. Systemcontainer sind ideal für die Verwaltung traditioneller Apps und die Handhabung monolithischer Anwendungen, die für die Ausführung einer einzigen Funktion ausgelegt sind, wie sie durch eine logische ausführbare Datei ausgedrückt wird. Diese Container sind auch für das Hosting der Architektur, der Konfigurationen und der Tools ausgestattet, die für die Ausführung von VMs erforderlich sind. Systemcontainer verbieten standardmäßig geschichtete Dateisysteme.
Unterstützte Container-Technologien: BSD Jails, Linux VServer, LXC, OpenVZ, Solaris Zones
Anwendungscontainer sind nicht annähernd so vielseitig wie Systemcontainer, die mehrere Prozesse gleichzeitig ausführen können. Anwendungscontainer tragen diesen Namen sogar, weil sie dazu gedacht sind, eine Anwendung zu bedienen, indem sie eine und nur eine ausführbare Aktion ausführen. Anwendungscontainer sind dazu da, einen einzelnen Dienst zu verpacken und zu betreiben. Sie unterstützen keine mehrschichtigen Dateisysteme.
Unterstützte Container-Technologien: Docker, Rocket
Die Containerisierung erfordert einige zusätzliche Anstrengungen und Geräte, zahlt sich aber aus. Container-Orchestrierungstools können eine einfachere Container-Erfahrung für Ihre Produktionsumgebungen ermöglichen – unabhängig davon, wo sich Ihre Produkte in ihren jeweiligen Lebenszyklen befinden.
Mit den Container-Services von IBM, die auf Open-Source-Technologien wie Kubernetes basieren, können Sie schneller, sicherer und produktiver in die Cloud wechseln.
Entdecken Sie Container in der IBM Cloud
Mehr über Red Hat OpenShift on IBM Cloud
IBM Cloud Kubernetes Service kennenlernen