Linux-Container (LXCs) sind eine Art von Container, die auf dem Linux-Betriebssystem basieren. Sie enthalten alle Dateien, die zum Ausführen eines bestimmten Prozesses oder bestimmter Prozesse in verschiedenen Rechenumgebungen und Pipelines erforderlich sind.
Heute sind Linux-Container unverzichtbare Tools in der modernen Softwareentwicklung, da sie es ermöglichen, Anwendungen zusammen mit all ihren Abhängigkeiten einfach zu verpacken. Viele moderne Anwendungen wie Docker, Kubernetes, Red Hat OpenShift, Microsoft Azure und andere nutzen Linux-Container aufgrund ihrer zusätzlichen Effizienz-, Portabilitäts- und Sicherheitsfunktionen.
Wie alle anderen Anwendungen und Softwaretools, die auf Linux basieren, sind Linux-Container Open Source, was bedeutet, dass ihr Quellcode kostenlos ist und von jedem verwendet werden kann. Linux-Container und ihre vielen Funktionen sind Teil von Linux-Distributionen, die von einer globalen Entwickler-Community gewartet und aktualisiert werden.
Linux ist eines der beliebtesten Open-Source-Betriebssysteme (OS) der Welt. Linux wurde 1991 von Linus Torvalds geschaffen und wurde schnell zu einer weit verbreiteten Alternative zu proprietären Betriebssystemen wie Windows und macOS. Das Linux-Betriebssystem basiert auf dem Linux-Kernel, einem Computerprogramm, das Benutzern die Kontrolle über Computersystemkomponenten wie Netzwerke, CPU-Auslastung, Treiber, Dateisysteme und mehr gibt.
Seit seiner Erfindung hat sich der Linux-Kernel zu einem unverzichtbaren Bestandteil von Linux-Distributionen entwickelt, bei denen es sich um Open-Source-Versionen des Linux-Betriebssystems handelt, die regelmäßig für Benutzer veröffentlicht werden. Heute kommt Linux in einer Vielzahl moderner Geräte und Anwendungen zum Einsatz und wird von einigen der größten Technologie-, Software- und Computerunternehmen der Welt genutzt.
Container sind ausführbare Einheiten der Anwendung, die den Anwendungscode zusammen mit den Bibliotheken und Abhängigkeiten dieses Codes enthalten, sodass der Code in verschiedenen Ökosystemen ausgeführt werden kann. Container sind für ihre Funktionalität auf viele Komponenten angewiesen. Beispielsweise sind Binärdateien wichtige Komponenten für die Containerfunktionalität, da sie es ermöglichen, einzelne Dateien und deren Anwendungscode in jeder Rechenumgebung auszuführen.
Container nutzen eine Form der Virtualisierung des Betriebssystems, bei der Funktionen des Betriebssystemkerns verwendet werden, um Prozesse zu isolieren und die Menge an CPU, Speicher und Festplattenspeicher zu steuern, auf die Anwendungen zugreifen können. Container sind portabler und ressourceneffizienter als virtuelle Maschinen (VMs) und sind in modernen cloudnativen Anwendungen wie Netflix, Spotify, AirBnB und anderen unverzichtbar geworden.
Branchen-Newsletter
Bleiben Sie mit dem Think-Newsletter über die wichtigsten – und faszinierendsten – Branchentrends in den Bereichen KI, Automatisierung, Daten und mehr auf dem Laufenden. Weitere Informationen finden Sie in der IBM Datenschutzerklärung.
Ihr Abonnement wird auf Englisch geliefert. In jedem Newsletter finden Sie einen Abmeldelink. Hier können Sie Ihre Abonnements verwalten oder sich abmelden. Weitere Informationen finden Sie in unserer IBM Datenschutzerklärung.
Linux-Container führen Anwendungen in isolierten Umgebungen auf einem einzelnen Hostsystem aus, das Linux als Betriebssystem verwendet. Das Herzstück der Linux-Container-Funktionalität ist eine Befehlszeile, auch als Shell bezeichnet, die Benutzern eine textbasierte Oberfläche zur Steuerung des Linux-Systems bietet.
Linux-Container sind ähnlich wie virtuelle Maschinen (VMs) insofern, als beide weit verbreitete Methoden der Virtualisierung sind, die die Cloud Computing und die Verteilung modernster Geschäftsanwendungen untermauern. Es gibt jedoch einige wichtige Unterschiede, die es zu beachten gilt.
Während VMs Hardware und IT-Infrastruktur virtualisieren, virtualisieren Linux-Container nur das Betriebssystem eines Systems, wodurch sie eine schlankere und portablere Option für die Ausführung von Anwendungen darstellen. Außerdem unterscheiden sich die Virtualisierungsmethoden, auf denen VMs und Linux-Container basieren, geringfügig voneinander. In einer VM sorgt eine Softwarekomponente namens Hypervisor für die zur Virtualisierung erforderliche Isolierung der Ressourcen. In einem Linux-Container wird dies durch ein Container-Image erreicht.
Diese fünf Hauptmerkmale von Linux-Containern ermöglichen ihre einzigartige Funktionalität.
VMs müssen über ein eigenes Betriebssystem und einen eigenen Kernel verfügen, um zu funktionieren. Container können jedoch den Linux-Kernel des Host-Betriebssystems nutzen, auf dem sie ausgeführt werden, wodurch sie leichter und schneller zu starten und auszuführen sind als VMs.
Die Isolierung von Linux-Containern nutzt eine Funktion des Linux-Kernels namens „Linux-Kernel-Namespaces“, die es ermöglicht, bestimmte Ressourcen für verschiedene Prozesse zu isolieren. Beispielsweise werden die Prozess-ID-Namespaces (PID-Namespaces) verwendet, um Prozesse im selben Container voneinander zu isolieren, damit sie sich nicht gegenseitig beeinflussen.
Cgroups, eine Abkürzung für Control Groups, sind ein Tool zur Ressourcenverwaltung, mit dem Benutzer Prozesse hierarchisch gruppieren und dann steuern können, auf welche Ressourcen sie Zugriff haben. Zum Beispiel werden Daemons (Prozesse, die den Lebenszyklus von Containern steuern) häufig von cgroups gesteuert.
Container-Images sind Softwarepakete, die alles enthalten, was zum Ausführen einer Anwendung benötigt wird, einschließlich Code, Runtime, Systembibliotheken und Systemtools. Container-Images machen die von ihnen unterstützten Anwendungen hochgradig skalierbar und ermöglichen den Betrieb in jeder Umgebung ohne manuelle Einrichtung.
Die Container-Laufzeiten sind Software, die es Containern ermöglicht, innerhalb eines Hostsystems, wie z. B. Linux, zu funktionieren. Container-Laufzeiten werden verwendet, um den Lebenszyklus des Containers zu verwalten. Mithilfe von Anwendungsprogrammierschnittstellen (APIs), die die Kommunikation zwischen Anwendungen ermöglichen, fungieren Container-Laufzeiten als Vermittler zwischen einem Container-Orchestrator wie Kubernetes, der die containerisierte Anwendung verwaltet, und dem Host-System, auf dem sie ausgeführt wird.
Das Konzept der Containerisierung existiert seit den 1970er Jahren, als Unix ein System namens Chroot einführte. Unix, ein beliebtes Betriebssystem, ermöglichte es Benutzern, Hardware- und Softwareressourcen auf einem Computer oder elektronischen Gerät zu steuern. Chroot war insofern einzigartig, als es die Isolierung von Prozessen auf einem System ermöglichte, was für Container-Technologien von entscheidender Bedeutung war.
Andere Technologien (z. B. AIX Workload Partitions und FreeBSD Jails) haben zwar eine ähnliche Prozessisolierung und Systemvirtualisierung wie die Ausführung von Containern ermöglicht, aber keine hat eine so große Verbreitung erreicht. Im Jahr 2013 hat die Einführung von Docker, einer Open-Source-Plattform für das Container-Management, die Dominanz von Containern im modernen Anwendungsökosystem weiter verstärkt und die Erstellung, Verwaltung und Bereitstellung von Containern einfacher denn je gemacht.
Die Marktbeherrschung von Containern im modernen Anwendungsmarkt kann nicht hoch genug eingeschätzt werden, insbesondere für cloudnative und Microservices-Anwendungen. Laut einem aktuellen Bericht wurde der weltweite Markt für Container im vergangenen Jahr auf 5,85 Milliarden USD geschätzt. Es wird erwartet, dass er in den nächsten fünf Jahren mit einer durchschnittlichen jährlichen Wachstumsrate (CAGR) von 33 % wachsen wird.1
Anwendungscontainer sind Container, die einzelne Prozesse und Workloads ausführen und es Benutzern ermöglichen, Container zu erstellen und zu löschen, ohne andere Prozesse oder App-Funktionen zu beeinträchtigen. Anwendungscontainer (und insbesondere Docker) waren entscheidend dafür, dass Anwendungen, auf die heute so viele Nutzer angewiesen sind – wie Facebook, MS Word, Zoom und andere – sich durchsetzen konnten. Obwohl es neuere Open-Source-Linux-Kernel-Technologien wie Ubuntu und system-nspawn gibt, sind Linux-Container nach wie vor weit verbreitet und bieten viele Vorteile.
Als Open-Source-Projekt werden Linux-Container kontinuierlich weiterentwickelt und von einer globalen Entwickler-Community geprägt, die ständig neue Funktionen hinzufügt und die Funktionalität und Benutzererfahrung verbessert. Hier sind einige ihrer beliebtesten Vorteile:
Aufgrund ihrer zahlreichen Funktionen und Vorteile sowie des Erfolgs des Open-Source-Distributionsmodells von Linux werden Linux-Container in vielen Branchen eingesetzt und haben zahlreiche Anwendungsfälle. Hier sind einige der beliebtesten.
Microservices-Architektur ist ein cloudnativ-architektonischer Ansatz für die Softwareentwicklung, bei dem eine einzelne Anwendung aus kleineren, unabhängigen Komponenten erstellt wird. Heutzutage ist ein Microservices-Ansatz aufgrund seiner Geschwindigkeit, Skalierbarkeit und Flexibilität in vielen Softwareentwicklungsumgebungen weit verbreitet.
Linux-Container sind ideal für Microservices-Architekturen, machen es Entwicklern leicht, einzelne Microservices bereitzustellen, die zu großen, komplexen Anwendungen miteinander verknüpft werden können.
DevOps und Continuous Integration/Continuous Delivery (CI/CD) sind eine Reihe von Praktiken, die von Softwareentwicklern verwendet werden, um die Softwareentwicklung und -bereitstellung zu automatisieren.
Linux-Container verbessern DevOps und CI/CD auf verschiedene wichtige Arten. Erstens tragen Linux-Container dazu bei, die Konsistenz der Produktionsumgebungen in der gesamten CI/CD-Pipeline sicherzustellen, sodass eine Software zum Zeitpunkt der Veröffentlichung wie vorgesehen funktioniert.
Zweitens automatisieren sie Aufgaben beim Erstellen, Testen und Bereitstellen von Anwendungen und helfen Entwicklern, Zeit und Ressourcen zu sparen. Schließlich sind Linux-Container schlanker als andere Arten der Virtualisierung, was DevOps-Teams hilft, die Kosten für die IT-Infrastruktur zu senken, die sie zur Einhaltung ihrer Fristen benötigen.
Die meisten modernen Unternehmen müssen ihre Kerngeschäft Anwendungen auf einer Mischung aus privaten und öffentlichen Cloud-Plattform bereitstellen, ein Ansatz, der als Hybrid-Cloud-Architektur bekannt ist.
Linux-Container eignen sich aufgrund ihrer Portabilität und Ressourcennutzung ideal für Hybrid-Cloud-Umgebungen, die öffentliche und private Clouds miteinander verbinden. Linux-Container können dazu beitragen, die Effizienz in Hybrid-Cloud-Umgebungen zu verbessern, die App-Leistung deutlich zu steigern und die Betriebskosten zu minimieren.
Im Rahmen laufender Initiativen zur digitalen Transformation müssen viele Unternehmen die Funktionsweise ihrer Apps entwickeln und verbessern. Sie sind ständig auf der Suche nach neuen Technologien und Tools, die ihnen einen Marktvorteil verschaffen können.
Laut IBM Institute of Business Value machen 83 % der Führungskräfte die Modernisierung ihrer Anwendungen zu einem zentralen Bestandteil ihrer Strategie. Linux-Container beschleunigen diesen Vorgang, indem sie Anwendungen, die auf veraltetem Code und Infrastruktur basieren, nehmen und ihre Abhängigkeiten und Anforderungen isolieren, damit sie einfach und effektiv in modernen Umgebungen bereitgestellt werden können.
Red Hat OpenShift on IBM Cloud ist eine vollständig verwaltete OpenShift Container Platform (OCP).
Container-Lösungen führen Container-Workload aus und skalieren sie mit Sicherheit, Open-Source-Innovation und schneller Bereitstellung.
Schalten Sie mit IBM Cloud Consulting Services neue Funktionen frei und steigern Sie die geschäftliche Agilität. Entdecken Sie, wie Sie mit Hybrid-Cloud-Strategien und Expertenpartnerschaften gemeinsam Lösungen entwickeln, die digitale Transformation beschleunigen und die Leistung optimieren können.
1. App market size and trends (2024), Grandview Research, 2024