Was sind Linux-Container?

Zwei Personen in einem Büro, die auf einen Computerbildschirm zeigen.

Autoren

Mesh Flinders

Staff Writer

IBM Think

Ian Smalley

Staff Editor

IBM Think

Was sind Linux-Container?

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.

Was ist Linux?

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.  

Was sind Container?

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.

Die neuesten Tech-News – von Experten bestätigt

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.

Vielen Dank! Sie haben sich angemeldet.

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.

Wie funktionieren Linux-Container?

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 vs. virtuelle Maschinen (VMs)

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.

Fünf Hauptmerkmale der Linux-Container-Funktionalität

Diese fünf Hauptmerkmale von Linux-Containern ermöglichen ihre einzigartige Funktionalität.

1. Gemeinsame Nutzung von Kernel

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.

2. Namespaces

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.

3. Cgroups

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.

4. Container-Images

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.

5. Container-Laufzeiten

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.

OpenShift 

Erfahren Sie, wie Container in der Cloud mit OpenShift ausgeführt werden

Container erleichtern das Erstellen, Ausführen und Verschieben von Anwendungen in verschiedenen Umgebungen. Dieses Video zeigt, wie OpenShift on IBM Cloud Teams dabei hilft, containerisierte Anwendungen effizient zu verwalten und die Cloud-Entwicklung schneller und zuverlässiger zu machen.

Die Entwicklung der Containerisierung

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 und Linux-Container (LXC)

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.

Vorteile von Linux-Containern

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:

  • Teilen von Ressourcen: Im Gegensatz zu VMs, die eine separate Betriebssysteminstanz benötigen, um zu funktionieren, teilen sich Linux-Container den Kernel eines Hostsystems, wodurch sie effizienter und in vielen Rechenumgebungen portabel sind.
  • Linux-Integration: Aufgrund ihrer Integration in den Linux-Kernel bleiben Linux-Container nah am Linux-Betriebssystem und ermöglichen so eine effizientere Ressourcennutzung als andere Virtualisierungstechnologien wie VMs und Hypervisoren.
  • On-Demand-Bereitstellung und automatische Skalierung: Dank ihrer kurzen Startzeiten und geringen Ressourcenanforderungen eignen sich Linux-Container ideal für die On-Demand-Bereitstellung und automatische Skalierung – wichtige Funktionen von Cloud- und Hybrid-Cloud-Umgebungen.
  • Erhöhte Sicherheit: Linux-Container bieten erweiterte Sicherheitsfunktionen durch Isolation und Ressourcenkontrolle. Aufgabenspezifische Sicherheitsmodule gibt es auch für einzelne Linux-Prozesse, die auf Linux-Distributionen veröffentlicht und aktualisiert werden. Ein Beispiel hierfür ist AppArmor, ein Sicherheitsmodul für den Linux-Kernel, das die Ausführung von Prozessen innerhalb von Containern einschränkt.
  • Geringerer Overhead: Linux-Container maximieren die Ressourcenauslastung und Skalierbarkeit, indem sie die gleichzeitige Ausführung mehrerer Container auf einem einzigen Hostsystem und Betriebssystem ermöglichen. Dieser Aspekt von Linux-Containern reduziert den Overhead beim gleichzeitigen Betrieb mehrerer Betriebssysteme erheblich, was bei vielen anderen Virtualisierungstechnologien erforderlich ist.
  • Verbesserte Orchestrierung: Die Container-Orchestrierung (oft über Kubernetes) automatisiert Linux-Container-Verwaltungsprozesse wie Bereitstellung und Skalierung. Linux-Container bieten eine detaillierte Kontrolle über die Containerverwaltung, wodurch Entwickler die Bereitstellung groß angelegter containerisierter Anwendungen einfacher koordinieren und verwalten können.

Anwendungsfälle für Linux-Container

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

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 CI/CD

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.

Hybride Multicloud-Umgebungen

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.

App-Modernisierung

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.

Weiterführende Lösungen
IBM Red Hat OpenShift

Red Hat OpenShift on IBM Cloud ist eine vollständig verwaltete OpenShift Container Platform (OCP).

Red Hat OpenShift erkunden
Container-Lösungen

Container-Lösungen führen Container-Workload aus und skalieren sie mit Sicherheit, Open-Source-Innovation und schneller Bereitstellung.

Container erkunden
Cloud-Beratungsleistungen 

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.

Cloud-Services
Machen Sie den nächsten Schritt

Modernisieren Sie Ihre Infrastruktur mit den Containerlösungen von IBM. Mit der umfassenden Container-Plattform von IBM können Sie containerisierte Workloads flexibel, sicher und effizient über verschiedene Umgebungen hinweg ausführen, skalieren und verwalten.

Containerlösungen kennenlernen Kostenloses IBM Cloud-Konto erstellen
Fußnoten

1. App market size and trends (2024), Grandview Research, 2024