Startseite topics containers Was sind Container?
Entdecken Sie die Containerlösungen von IBM Abonnieren Sie Cloud-Updates
Illustration mit Collage aus Piktogrammen von Computermonitor, Server, Wolken, Punkten
Was sind Container?

Container sind ausführbare Softwareeinheiten, in denen Anwendungscode zusammen mit seinen Bibliotheken und Abhängigkeiten in üblicher Weise verpackt wird, sodass der Code überall ausgeführt werden kann – sei es auf dem Desktop, in der herkömmlichen IT oder in der Cloud.

Container machen sich eine Form der Betriebssystemvirtualisierung zunutze, bei der Funktionen des Betriebssystemkernels (z. B. Linux-Namespaces und Cgroups, Windows-Silos und Jobobjekte) verwendet werden können, um Prozesse zu isolieren und die Menge an CPU, Speicher und Festplatte zu steuern, auf die diese Prozesse zugreifen können.

Container sind klein, schnell und portabel, denn im Gegensatz zu einer virtuellen Maschine müssen Container nicht in jeder Instanz ein Gastbetriebssystem enthalten und können stattdessen einfach die Funktionen und Ressourcen des Hostbetriebssystems nutzen.

Container tauchten erstmals vor Jahrzehnten mit Versionen wie FreeBSD Jails und AIX Workload Partitions auf, aber die meisten modernen Entwickler erinnern sich an 2013 als den Beginn der modernen Container-Ära mit der Einführung von Docker.

Strategische App-Modernisierung bringt digitale Transformation voran

Die strategische Anwendungsmodernisierung ist ein Schlüssel zum Transformationserfolg, der den Jahresumsatz steigern und die Wartungs- und Betriebskosten senken kann.

Ähnliche Inhalte

Registrieren Sie sich, um den Leitfaden zu DaaS zu lesen

Container versus virtuelle Maschinen

Eine Möglichkeit, einen Container besser zu verstehen, besteht darin, zu verstehen, wie er sich von einem herkömmlichen virtuellen Computer (VM) unterscheidet. In der traditionellen Virtualisierung– ob lokal oder in der Cloud – wird ein Hypervisor verwendet, um physische Hardware zu virtualisieren. Jede VM enthält dann ein Gastbetriebssystem und eine virtuelle Kopie der Hardware, die für die Ausführung des Betriebssystems erforderlich ist, sowie eine Anwendung und die zugehörigen Bibliotheken und Abhängigkeiten.

Anstatt die zugrunde liegende Hardware zu virtualisieren, virtualisieren Container das Betriebssystem (in der Regel Linux), so dass jeder einzelne Container nur die Anwendung und ihre Bibliotheken und Abhängigkeiten enthält. Das Fehlen des Gastbetriebssystems ist der Grund, warum Container so leichtgewichtig und damit schnell und portabel sind.

Einen genaueren Einblick in diesen Vergleich erhalten Sie unter „Container vs. VMs: Was ist der Unterschied?

Vorteile von Containern

Der Hauptvorteil von Containern, insbesondere im Vergleich zu einer VM, besteht darin, dass sie ein Abstraktionsniveau bieten, das sie leichtgewichtig und portabel macht. Zu ihren Hauptvorteilen gehören:

Leichtgewichtig: Container geben den Computer-Betriebssystemkernel frei, sodass keine vollständige Betriebssysteminstanz pro Anwendung erforderlich ist und Containerdateien klein und einfach auf Ressourcen gespeichert werden können. Ihre kleinere Größe, insbesondere im Vergleich zu VMs, bedeutet, dass Container sich schnell entwickeln und cloudnative Anwendungen besser unterstützen können, die horizontal skaliert werden können.

Portabel und plattformunabhängig: Container bringen alle ihre Abhängigkeiten mit, was bedeutet, dass Software einmal geschrieben und dann ausgeführt werden kann, ohne dass sie auf Laptops, in der Cloud und in lokalen Computerumgebungen neu konfiguriert werden muss.

Unterstützt die moderne Entwicklung und Architektur: Aufgrund einer Kombination aus Portabilität/Konsistenz bei der Bereitstellung auf allen Plattformen und ihrer kleinen Größe sind Container ideal für moderne Entwicklungs- und Anwendungsmuster wie DevOpsserverlose und Microservicesgeeignet, die durch die Verwendung regelmäßiger Code-Bereitstellungen in kleinen Schritten erstellt werden.

Verbessert die Auslastung: Wie VMs vor ihnen ermöglichen Container Entwicklern und Betreibern, die CPU- und Speicherauslastung physischer Maschinen zu verbessern. Container gehen sogar noch weiter: Da sie auch eine Microservices-Architektur ermöglichen, können Anwendungskomponenten granularer bereitgestellt und skaliert werden. Dies ist eine attraktive Alternative im Vergleich dazu, eine ganze monolithische Anwendung hochskalieren zu müssen, weil eine einzelne Komponente mit der Last zu kämpfen hat.

In einer aktuellen IBM-Umfrage berichteten Entwickler und IT-Führungskräfte von vielen weiteren Vorteilen der Verwendung von Containern.

Vollständigen Bericht herunterladen: Container im Unternehmen

Anwendungsfälle für Container

Container gewinnen immer mehr an Bedeutung, insbesondere in Cloud-Umgebungen. Viele Unternehmen ziehen sogar Container als Ersatz für VMs als allgemeine Rechenplattform für ihre Anwendungen und Workloads in Betracht. Innerhalb dieses breiten Anwendungsbereichs gibt es jedoch wichtige Anwendungsfälle, in denen Container besonders relevant sind.

  • Microservices: Container sind klein und leicht, weshalb sie sich gut für Microservice-Architekturen eignen, bei denen Anwendungen aus vielen, lose gekoppelten und unabhängig voneinander einsetzbaren kleineren Diensten aufgebaut sind.
  • DevOps: Die Kombination von Microservices als Architektur und Containern als Plattform ist eine gemeinsame Grundlage für viele Teams, die DevOps als die Art und Weise nutzen, wie sie Software entwickeln, versenden und ausführen.
  • Hybrid und Multi-Cloud: Da Container überall konsistent ausgeführt werden können – auf Laptops, On-Premises- und Cloud-Umgebungen – sind sie eine ideale zugrunde liegende Architektur für Hybrid-Cloud - und Multi-Cloud-Szenarien, in denen Unternehmen in einer Mischung aus mehreren Public Clouds in Kombination mit ihrem eigenen Rechenzentrum arbeiten.
  • Anwendungsmodernisierung und -migration: Einer der häufigsten Ansätze für die Anwendungsmodernisierung ist die Containerisierung von Anwendungen zur Vorbereitung auf die Cloud-Migration.
Containerisierung

Software muss anders gestaltet und verpackt werden, um die Vorteile von Containern nutzen zu können – ein Prozess, der häufig als Containerisierung bezeichnet wird.

Bei der Containerisierung einer Anwendung umfasst der Prozess das Paketieren einer Anwendung mit ihren relevanten Umgebungsvariablen, Konfigurationsdateien, Bibliotheken und Softwareabhängigkeiten. Das Ergebnis ist ein Container-Image, das dann auf einer Container-Plattform ausgeführt werden kann.

Containerorchestrierung mit Kubernetes

Als Unternehmen begannen, Container zu nutzen – oft als Teil moderner, clooudnativer Architekturen – kollidierte die Einfachheit des einzelnen Containers mit der Komplexität der Verwaltung von Hunderten (oder sogar Tausenden) von Containern in einem verteilten System.

Um dieser Herausforderung zu begegnen, wurde die Containerorchestrierung während des gesamten Lebenszyklus als eine Möglichkeit zur Verwaltung großer Mengen von Containern entwickelt, darunter:

  • Bereitstellung
  • Redundanz
  • Zustandsüberwachung
  • Ressourcenzuweisung
  • Skalierung und Lastenausgleich
  • Wechsel zwischen physischen Hosts

Während viele Container-Orchestrierungsplattformen (z. B. Apache Mesos, Nomad und Docker Swarm) erstellt wurden, wurde Kubernetes, ein Open-Source-Projekt, das 2014 von Google eingeführt wurde, schnell zur beliebtesten Container-Orchestrierungsplattform – und es ist der Großteil der Branche, auf dem ihre Standardisierung basiert.

Kubernetes ermöglicht es Entwicklern und Betreibern, den gewünschten Zustand ihrer gesamten Container-Umgebung über YAML-Dateien zu deklarieren. Anschließend übernimmt Kubernetes die gesamte Verarbeitungsarbeit zur Herstellung und Aufrechterhaltung dieses Zustands, einschließlich der Bereitstellung einer bestimmten Anzahl von Instanzen einer bestimmten Anwendung oder Arbeitslast, des Neustarts dieser Anwendung bei Ausfall, des Lastausgleichs, der automatischen Skalierung, der Bereitstellung ohne Ausfallzeiten und vieles mehr.

Kubernetes wird jetzt von der Cloud Native Computing Foundation (CNCF) betrieben, einer herstellerunabhängigen Branchengruppe, die unter der Schirmherrschaft der Linux Foundation betrieben wird.

Istio, Knative und das expandierende Container-Ecosystem

Da Container als beliebte Methode zum Verpacken und Ausführen von Anwendungen immer mehr an Bedeutung gewinnen, wächst das Ökosystem von Tools und Projekten, die auf die Aufnahme und Erweiterung von Anwendungsfällen in der Produktion ausgelegt sind, weiter. Neben Kubernetes sind zwei der beliebtesten Projekte im Containerökosystem Istio und Knative.

Istio

Da Entwickler Container zum Erstellen und Ausführen Microservice Architekturen verwenden, gehen die Verwaltungsaspekte über die Lebenszyklusaspekte einzelner Container hinaus und betreffen die Art und Weise, wie große Mengen kleiner Dienste – oft als „Service Mesh“ bezeichnet – miteinander verbunden sind und zueinander in Beziehung stehen. Istio wurde geschaffen, um Entwicklern die Bewältigung der damit verbundenen Herausforderungen in Bezug auf Erkennung, Datenverkehr, Überwachung, Sicherheit und mehr zu erleichtern. 

Weitere Informationen über Istio

knative

Serverlose Architekturen werden ebenfalls immer beliebter, insbesondere in der cloudnativen Community. Knative bietet beispielsweise einen erheblichen Mehrwert in seiner Fähigkeit, containerisierte Dienste als serverlose Funktionen bereitzustellen.

Anstatt ständig zu laufen und bei Bedarf zu reagieren (wie es ein Server tut), kann eine serverlose Funktion „auf Null skalieren“, was bedeutet, dass sie überhaupt nicht läuft, es sei denn, sie wird aufgerufen. Dieses Modell kann bei der Anwendung auf Zehntausende von Containern enorme Mengen an Rechenleistung einsparen.  

Weiterführende Lösungen
Red Hat OpenShift on IBM Cloud

Red Hat OpenShift on IBM Cloud nutzt OpenShift in öffentlichen und hybriden Umgebungen für Geschwindigkeit, Marktreaktivität, Skalierbarkeit und Zuverlässigkeit.

Red Hat OpenShift on IBM Cloud kennenlernen
IBM Cloud Pak for Applications

Ganz gleich, ob es um die Bereitstellung, die Entwicklung neuer cloudnativer Anwendungen, das Refactoring oder die Umstellung bestehender Anwendungen geht – CP4Apps deckt alles ab.

Erkunden Sie IBM Cloud Pak for Applications
IBM Cloud Satellite

Mit IBM Cloud Satellite können Sie überall konsistente Cloud-Services starten – lokal, am Edge und in Public-Cloud-Umgebungen.

IBM Cloud Satellite kennenlernen
IBM Cloud Code Engine

Führen Sie Container-Images, Stapeljobs oder Quellcode als serverlose Workloads aus – ohne Größenanpassung, Bereitstellung, Vernetzung oder Skalierung.

IBM Cloud Code Engine kennenlernen
IBM Cloud Container Registry

IBM Cloud Container Registry stellt Ihnen eine private Registry zur Verfügung, mit der Sie Ihre Images verwalten und auf Sicherheitsprobleme überwachen können.

IBM Cloud Container Registry erkunden
Optimieren Sie Kubernetes mit IBM Turbonomic

Bestimmen Sie automatisch die richtigen Maßnahmen für die Ressourcenzuordnung – und den richtigen Zeitpunkt, um sicherzustellen, dass Ihre Kubernetes-Umgebungen und geschäftskritischen Anwendungen genau das bekommen, was sie zur Erfüllung Ihrer SLOs benötigen.

IBM Turbonomic kennenlernen
Ressourcen Nutzung von Containern im Unternehmen

Eine neue Studie von IBM dokumentiert die rasante Verbreitung von Containern und Kubernetes.

Kombinieren Sie die besten Funktionen der Cloud und der traditionellen IT

Containerorchestrierung ist eine Schlüsselkomponente einer offenen Hybrid-Cloud-Strategie, mit der Sie Workloads von überall aus erstellen und verwalten können.

Was ist Docker?

Docker ist eine Open-Source-Plattform zum Erstellen, Bereitstellen und Verwalten von containerisierten Anwendungen.

Machen Sie den nächsten Schritt

Red Hat OpenShift on IBM Cloud bietet Entwicklern eine schnelle und sichere Möglichkeit zur Containerisierung und Bereitstellung von Unternehmensworkloads in Kubernetes-Clustern. Entlasten Sie Ihre Teams von mühsamen Routineaufgaben wie Sicherheitsmanagement, Konformitätsmanagement, Implementierungsmanagement und laufendes Lebenszyklusmanagement.

Red Hat OpenShift on IBM Cloud kennenlernen Kostenfrei starten