Was ist Containerisierung?

 20. Mai 2024

Autoren

Stephanie Susnjara

IBM Think Content Contributor

Ian Smalley

Senior Editorial Strategist

Was ist Containerisierung?

Containerisierung ist die Verpackung von Software-Code mit nur den Betriebssystem-Bibliotheken und Abhängigkeiten, die für die Ausführung des Codes erforderlich sind, um eine einzige leichtgewichtige ausführbare Datei – einen sogenannten Container – zu erstellen, der auf jeder Infrastruktur konsistent ausgeführt werden kann.

Container sind mobiler und ressourceneffizienter als Virtual Machines (VMs) und wurden zu den de facto Computing-Einheiten moderner cloudnativer Anwendungen.

Mithilfe der Containerisierung können Entwickler Anwendungen schneller und sicherer erstellen und bereitstellen. Bei herkömmlichen Methoden schreiben Entwickler Code in einer bestimmten Computerumgebung, was bei der Übertragung an einen neuen Standort häufig zu Fehlern und Irrtümern führt. Dies kann beispielsweise passieren, wenn ein Entwickler Code von einem Desktop-Computer auf eine VM oder von Linux auf ein Windows überträgt. Die Containerisierung löst dieses Problem, indem der Anwendungscode mit den zugehörigen Konfigurationsdateien, Bibliotheken und Abhängigkeiten gebündelt wird, die für die Ausführung erforderlich sind. Dieses einzelne Softwarepaket oder dieser „Container” ist vom Host-Betriebssystem abstrahiert. Daher steht er für sich allein und wird portabel – der Container kann problemlos auf jeder Plattform oder Cloud ausgeführt werden.

Das Konzept der Containerisierung und Prozessisolierung ist Jahrzehnte alt. Die Einführung des Open-Source-Programms Docker im Jahr 2013 – ein Industriestandard für Container mit einfachen Developer Tools und einem universellen Verpackungsansatz – beschleunigte jedoch die Einführung dieser Technologie. Heutzutage nutzen Unternehmend zunehmend die Containerisierung, um neue Anwendungen zu erstellen und bestehende Anwendungen für die Cloud zu modernisieren.

Laut einem Bericht von Forrester1 geben 74 Prozent der Entscheidungsträger im Bereich Infrastruktur in den USA an, dass ihre Unternehmen Container innerhalb einer Platform as a Service (PaaS) in einer lokalen oder Public Cloud-Umgebung einsetzen.

Container sind „leichtgewichtig”, d. h. sie nutzen den Kernel des Betriebssystems der Maschine gemeinsam und erfordern nicht den Aufwand, jeder Anwendung ein eigenes Betriebssystem zuzuordnen. Container haben von Natur aus eine geringere Kapazität als VMs und benötigen weniger Startzeit. Diese Fähigkeit ermöglicht es, dass weitaus mehr Container auf derselben Rechenkapazität wie eine einzelne VM ausgeführt werden können. Diese Fähigkeit führt zu einer höheren Server-Effizienz und senkt wiederum die Kosten für Server und Lizenzen.

Am wichtigsten ist, dass die Containerisierung es ermöglicht, Anwendungen „einmal zu schreiben und überall auszuführen”, und zwar in lokalen Rechenzentren, Hybrid Cloud- und Multicloud -Umgebungen.

Diese Portabilität beschleunigt die Entwicklung, verhindert Cloud-Anbieterbindung und bietet weitere bemerkenswerte Vorteile wie Fehlerisolierung, einfache Verwaltung, vereinfachte Sicherheit und vieles mehr.

Das folgende Video bietet weitere Erklärungen zur Containerisierung:

Containerisierungs-Architektur

Die Containerisierungsarchitektur besteht aus vier wesentlichen Komponentenebenen.

Zugrundeliegende IT-Infrastruktur

Die zugrunde liegende IT-Infrastruktur ist eine Basisschicht, die die physischen Rechenressourcen (z. B. Desktop-Computer, Bare Metal Server) umfasst.

Host-Betriebssystem

Diese Ebene läuft auf der physischen oder Virtual Machine. Das Betriebssystem verwaltet Systemressourcen und stellt eine Laufzeitumgebung für Container-Engines bereit. 

Container-Image

Die Container-Engine, auch als Laufzeit-Engine bezeichnet, stellt die Ausführungsumgebung für Container-Images (schreibgeschützte Vorlagen mit Anweisungen zum Erstellen eines Containers) bereit. Container-Engines laufen auf dem Host-Betriebssystem und virtualisieren die Ressourcen für containerisierte Anwendungen.

Containerisierte Anwendungen

Diese letzte Ebene besteht aus den Softwareanwendungen, die in Containern ausgeführt werden.

Wie funktioniert Containerisierung?

Container kapseln eine Anwendung als einzelnes ausführbares Softwarepaket, das den Anwendungscode zusammen mit allen zugehörigen Konfigurationsdateien, Bibliotheken und Abhängigkeiten bündelt, die für die Ausführung erforderlich sind.

Containeranwendungen sind „isoliert”, d. h. sie sind nicht in einer Kopie des Betriebssystems gebündelt. Stattdessen wird eine Open-Source-Container-Laufzeit oder Container-Engine (wie etwa die Docker-Runtime-Engine) auf dem Host-Betriebssystem installiert und dient als Kanal für Container, um ein Betriebssystem mit anderen Containern auf demselben Computersystem zu teilen.

Andere Container-Ebenen, wie z. B. gemeinsame Binärdateien (Bins) und Bibliotheken, können von mehreren Containern gemeinsam genutzt werden. Diese Funktion eliminiert den Mehraufwand, der durch den Betrieb eines Betriebssystems in jeder Anwendung entsteht, und macht Container kleiner und schneller einsetzbar als VMs, was zu einer höheren Server-Effizienz führt. Die Anwendungsisolierung als Container verringert auch die Wahrscheinlichkeit, dass sich bösartiger Code in einem Container auf andere Container auswirkt oder in das Host-System eindringt.

Durch die Abstraktion vom Host-Betriebssystem sind containerisierte Anwendungen portabel und können einheitlich und konsistent auf jeder Plattform oder in jeder Cloud ausgeführt werden. Container können einfach von einem Desktop-Computer auf eine Virtual Machine (VM) oder von einem Linux- auf ein Windows-Betriebssystem übertragen werden. Container können auch durchgängig auf virtualisierten Infrastrukturen oder herkömmlichen Bare Metal Servern ausgeführt werden, entweder lokal oder in einem Cloud-Rechenzentrum.

Die Containerisierung ermöglicht es Softwareentwicklern, Anwendungen schneller und sicherer zu erstellen und bereitzustellen, unabhängig davon, ob es sich bei der Anwendung um einen traditionellen Monolithen (eine einstufige Softwareanwendung) oder eine modulare Anwendung handelt, die auf einer Microservice-Architektur basiert. Entwickler können neue cloudbasierte Anwendungen von Grund auf als containerisierte Mikrodienste erstellen und so eine komplexe Anwendung in eine Reihe kleinerer, spezialisierter und verwaltbarer Dienste aufteilen. Sie können auch vorhandene Anwendungen in Container (oder containerisierte Mikrodienste) umwandeln, die Rechenressourcen effizienter nutzen.

Luftaufnahme einer Autobahn

Bleiben Sie in der Cloud

Abonnieren Sie den wöchentlichen Think-Newsletter und erhalten Sie Tipps von Experten zur Optimierung von Multi-Cloud-Einstellungen in Zeiten von KI.

Virtualisierung vs. Containerisierung

Container werden oft mit Virtual Machines (VMs) verglichen, da beide Technologien eine erhebliche Recheneffizienz ermöglichen, indem sie die Ausführung mehrerer Softwaretypen (Linux- oder Windows-basiert) in einer einzigen Umgebung ermöglichen. 

Bei der Virtualisierung wird ein Hypervisor verwendet, eine Softwareebene, die auf einem physischen Computer oder Server platziert wird und es dem physischen Computer ermöglicht, sein Betriebssystem und seine Anwendungen von seiner Hardware zu trennen. Die Virtualisierungstechnologie ermöglicht es, mehrere Betriebssysteme und Softwareanwendungen gleichzeitig auszuführen und die Ressourcen eines einzelnen physischen Computers oder Hostrechners (z. B. CPU, Speicher und Arbeitsspeicher) gemeinsam zu nutzen. Beispielsweise kann ein IT-Unternehmen sowohl Windows als auch Linux oder mehrere Versionen eines Betriebssystems zusammen mit verschiedenen Anwendungen auf demselben Server ausführen.

Jede Anwendung und das zugehörige Dateisystem, Bibliotheken und andere Abhängigkeiten – einschließlich einer Kopie des Betriebssystems (OS) – werden zusammen als VM verpackt. Wenn mehrere VMs auf einem einzigen physischen Computer ausgeführt werden, können erhebliche Einsparungen bei den Kapital-, Betriebs- und Energiekosten erzielt werden.

Die Containerisierung hingegen nutzt Rechenressourcen noch effizienter. Ein Container erstellt ein einzelnes ausführbares Softwarepaket, das den Anwendungscode zusammen mit allen für die Ausführung erforderlichen Abhängigkeiten bündelt. Im Gegensatz zu VMs enthalten Container jedoch keine  Kopie des Betriebssystems. Stattdessen wird die Container-Laufzeit-Engine auf dem Host-Betriebssystem oder dem „Host-OS” installiert und wird so zum Kanal, über den alle Container auf dem Computersystem dasselbe Betriebssystem gemeinsam nutzen.

Container werden oft als „leichtgewichtig” bezeichnet – sie nutzen den Betriebssystemkern der Maschine und erfordern nicht den Overhead, der entsteht, wenn jeder Anwendung ein Betriebssystem zugeordnet wird (wie es bei einer VM der Fall ist). Andere Container-Ebenen (gemeinsame Bin und Bibliotheken) können auch von mehreren Containern gemeinsam genutzt werden, wodurch Container von Natur aus eine geringere Kapazität als eine VM haben und schneller gestartet werden können. Mehrere Container können auf derselben Rechenkapazität wie eine einzelne VM ausgeführt werden, was die Server-Effizienz noch weiter steigert und die Server- und Lizenzkosten senkt.

Das folgende Video befasst sich eingehender mit Containern im Vergleich zu VMs:

Vorteile der Containerisierung

Die Containerisierung bietet Entwicklern und Entwicklungsteams erhebliche Vorteile, insbesondere in den folgenden Bereichen.

Portabilität

Ein Container erstellt ein ausführbares Softwarepaket, das vom Host-Betriebssystem abstrahiert ist (nicht mit diesem verbunden ist oder von diesem abhängt). Daher ist es portabel und kann auf jeder Plattform oder in jeder Cloud einheitlich und konsistent ausgeführt werden.

Agilität

Die Entwicklung und Bereitstellung von Containern erhöht die Agilität und sorgt dafür, dass Anwendungen in Cloud-Umgebungen ausgeführt werden können, die den Geschäftsanforderungen am besten entsprechen.

Geschwindigkeit

Container sind „leichtgewichtig”, d. h., sie teilen sich den Kernel des Betriebssystems (OS) der Maschine. Diese Funktion sorgt nicht nur für eine höhere Serverleistung, sondern senkt auch die Server- und Lizenzkosten und beschleunigt die Startzeiten, da kein Betriebssystem hochgefahren werden muss.

Fehlerisolierung

Jede containerisierte Anwendung ist isoliert und arbeitet unabhängig von anderen. Der Ausfall eines Containers beeinträchtigt nicht den weiteren Betrieb anderer Container. Entwicklungsteams können technische Probleme innerhalb eines Containers identifizieren und beheben, ohne dass es zu Ausfallzeiten bei anderen Containern kommt. Außerdem kann die Container-Engine alle Techniken zur Sicherheitsisolierung von Betriebssystemen – wie die SELinux-Zugriffskontrolle – nutzen, um Fehler innerhalb von Containern zu isolieren.

Effizienz

Software, die in containerisierten Umgebungen ausgeführt wird, teilt sich den Betriebssystemkern des Rechners, und Anwendungsebenen innerhalb eines Containers können über Container hinweg gemeinsam genutzt werden. Daher haben Container grundsätzlich eine geringere Kapazität als eine VM und benötigen weniger Startzeit, sodass weitaus mehr Container auf derselben Rechenkapazität wie eine einzelne VM ausgeführt werden können. Diese Fähigkeit erhöht die Ressourcenoptimierung und steigert die Server-Effizienz, wodurch die Kosten für Server und Lizenzen gesenkt werden.

Verwaltungskomfort

Die Containerisierung, insbesondere in Kombination mit einer Container-Orchestrierungsplattform wie Kubernetes, automatisiert und vereinfacht die Einrichtung, Bereitstellung und Verwaltung von containerisierten Anwendungen.

Sicherheit

Die Isolierung von Anwendungen als Container verhindert inhärent, dass das Eindringen von bösartigem Code andere Container oder das Host-System beeinträchtigt. Zusätzlich können Sicherheitsberechtigungen definiert werden, um das Eindringen unerwünschter Komponenten in Container automatisch zu blockieren oder die Kommunikation mit unnötigen Ressourcen einzuschränken.

Containerisierungsplattformen und Tools

Mit der zunehmenden Verbreitung von Container-basierten Lösungen stieg auch der Bedarf an Standards für die Container-Technologie und den Umgang mit dem Paket-Softwarecode. Die Open Container Initiative (OCI)2, ein Linux-Projekt, das im Juni 2015 von Docker und anderen Branchenführern ins Leben gerufen wurde, entstand als Möglichkeit, gemeinsame, minimale, offene Standards und Spezifikationen rund um die Containertechnologie zu fördern. Seitdem hat die OCI dazu beigetragen, die Auswahl an Open-Source-Engines zu erweitern, sodass Benutzer nicht mehr an einen Anbieter gebunden sind. Entwickler können auch von OCI-zertifizierten Technologien profitieren, die es ihnen ermöglichen, containerisierte Anwendungen mithilfe einer Vielzahl von DevOps-Tools zu erstellen und diese konsistent auf der/den Infrastruktur(en) ihrer Wahl auszuführen.

Um Missverständnisse auszuschließen, bezieht sich Docker auch auf Docker, Inc.3, das Unternehmen, das Produktivitätswerkzeuge auf der Grundlage der Docker-Containertechnologie entwickelt. Es bezieht sich auch auf das Docker Open Source Projekt2, zu dem Docker, Inc. und viele andere Unternehmen und Einzelpersonen beitragen.

Docker ist zwar die bekannteste und am häufigsten verwendete Container-Engine-Technologie, doch das breitere Ökosystem hat sich auf Containerd und andere Alternativen wie CoreOS rkt, Mesos Containerizer, LXC Linux Containers, OpenVZ und crio-d standardisiert.

AI Academy

KI-Bereitschaft mit Hybrid Cloud

Das Programm, das von führenden IBM Experten geleitet wird, soll Führungskräften dabei helfen, das nötige Wissen zu erwerben, um die Prioritäten für KI-Investitionen zu setzen, die zu mehr Wachstum führen.

Containerorchestrierung und Kubernetes

Heute kann ein Unternehmen Hunderte oder Tausende von Containern haben – eine Anzahl, die von Teams manuell kaum zu verwalten wäre. Hier kommt die Container-Orchestrierung zum Einsatz.

Eine Container-Orchestrierungsplattform plant und automatisiert die Verwaltung wie die Container-Bereitstellung, den Netzbetrieb, Lastausgleich, die Skalierbarkeit und die Verfügbarkeit.

Kubernetes, das beliebteste verfügbare Tool zur Container-Orchestrierung, ist eine Open-Source-Technologie (ursprünglich von Google als Open Source zur Verfügung gestellt, basierend auf ihrem internen Projekt namens Borg), die Linux-Container-Funktionen automatisiert. Kubernetes funktioniert mit vielen Container-Engines, wie z. B. Docker Engine. Es funktioniert auch mit jedem Containersystem, das den Standards der Open Container Initiative (OCI) für Container-Image-Formate und Laufzeiten entspricht.

Kubernetes ist zwar der Branchenstandard, aber andere beliebte Container-Orchestrierungsplattformen sind Apache Mesos, Nomad und Docker Swarm.

Weitere Informationen zur Container-Orchestrierung finden Sie in diesem Video, das die Funktionsweise von Kubernetes erklärt.

Containerisierung und Cloud Computing

Microservices und Containerisierung

Die Containerisierung ist ein wesentlicher Bestandteil der Anwendungsmodernisierung. Dieser Prozess bezieht sich auf die Umwandlung monolithischer (Legacy-)Anwendungen in cloudnative Anwendungen, die auf einer Microservices-Architektur basieren und so konzipiert sind, dass sie sich in jede Cloud-Umgebung integrieren lassen.

Microservices sind ein überlegener Ansatz für die Anwendungsentwicklung und -verwaltung im Vergleich zum früheren monolithischen Modell, bei dem eine Softwareanwendung mit der zugehörigen Benutzeroberfläche und der zugrunde liegenden Datenbank auf einer Single-Server-Plattform zu einer Einheit zusammengefasst wird. Bei Microservices wird eine komplexe Anwendung in eine Reihe kleinerer, spezialisierterer Services aufgeteilt, von denen jeder seine eigene Datenbank und seine eigene Geschäftslogik hat. Microservices kommunizieren über gemeinsame Schnittstellen (wie APIs) und REST-Schnittstellen (wie HTTP). Durch die Verwendung von Microservices können sich Entwicklungsteams auf die Aktualisierung bestimmter Bereiche einer Anwendung konzentrieren, ohne die gesamte Anwendung zu beeinträchtigen, was zu einer schnelleren Entwicklung, Prüfung und Bereitstellung führt.

Die Konzepte hinter Microservices und Containerisierung sind ähnlich. Beide sind Methoden der Softwareentwicklung, die Anwendungen im Wesentlichen in Sammlungen kleinerer Services oder Komponenten umwandeln, die portabel, skalierbar, effizient und einfacher zu verwalten sind.

Darüber hinaus funktionieren Microservices und Containerisierung gut, wenn sie zusammen verwendet werden. Container bieten eine leichte Kapselung für jede Anwendung, sei es ein traditioneller Monolith oder ein modularer Microservice. Ein Microservice, der innerhalb eines Containers entwickelt wurde, profitiert dann von allen Vorteilen der Containerisierung, wie z. B. der Portabilität.

Insgesamt haben sich Container, Microservices und Cloud Computing miteinander verbunden und die Anwendungsentwicklung und -bereitstellung auf eine neue Ebene gehoben. Diese Technologien vereinfachen DevOps -Workflows und unterstützen CI/CD-Pipelines (kontinuierliche Integration und Bereitstellung) für eine beschleunigte Softwareentwicklung. Diese innovativen Ansätze haben den Softwareentwicklungszyklus agiler, effizienter und zuverlässiger gemacht und zu einer schnelleren Bereitstellung von containerisierten Apps und Verbesserungen für Benutzer und den Markt geführt.

Cloud-Migration und Containerisierung

Unternehmen verlagern ihre Aktivitäten zunehmend in die Cloud, wo Benutzer Anwendungen schnell und effizient entwickeln können. Die Containerisierung ist zu einem entscheidenden Anwendungsfall für die  Cloud-Migration geworden, d. h. für den Prozess der Verlagerung von Daten, Anwendungen und Workloads von einem lokalen Rechenzentrum in eine cloudbasierte Infrastruktur oder von einer Cloud-Umgebung in eine andere.

Die Cloud-Migration ist ein wesentlicher Bestandteil der Hybrid Cloud -Umgebung eines Unternehmens, die Dienste für lokale, Public Clouds und Private Cloud zu einer einzigen, flexiblen und kostengünstigen IT-Infrastruktur kombiniert, die das Workload-Management in allen Cloud- Umgebungen unterstützt und automatisiert.

Hybrid Cloud und Containerisierung

Heute sind cloudbasierte Anwendungen und Daten von jedem mit dem Internet verbundenen Gerät aus zugänglich, sodass Teammitglieder auch von unterwegs arbeiten können. Cloud-Service-Provider (CSPs) – beispielsweise Amazon Web Services (AWS), Google Cloud Services, IBM Cloud oder Microsoft Azure – verwalten die zugrunde liegende Infrastruktur, wodurch Unternehmen die Kosten für Server und andere Geräte sparen und außerdem automatisierte Netzwerk-Backups für zusätzliche Zuverlässigkeit erhalten. Cloud-Infrastrukturen lassen sich nach Bedarf skalieren und passen Rechenressourcen, Kapazität und Infrastruktur dynamisch an, wenn sich die Lastanforderungen ändern. Darüber hinaus aktualisieren CSPs regelmäßig ihre Angebote, sodass die Benutzer kontinuierlich Zugang zu den neuesten innovativen Technologien wie generativer KI haben.

Container as a Service (CaaS)

Viele der führenden Cloud-Service-Anbieter bieten Container als Service (CaaS) an. CaaS ist im Wesentlichen eine Teilmenge von Infrastructure as a Service (IaaS) und befindet sich zwischen IaaS und Platform as a Service (PaaS) im Cloud-Computing-Stack und bietet ein Gleichgewicht zwischen der Kontrolle, die IaaS bietet, und der Einfachheit von PaaS.

CaaS bietet eine cloudbasierte Plattform, mit der Benutzer containerbasierte Virtualisierungs- und Containerverwaltungsprozesse optimieren können. CaaS bietet auch Container-Laufzeiten, Orchestrierungsebenen und persistente Speicherverwaltung. Im Jahr 2022 wurde der globale CaaS-Markt auf fast 2 Milliarden US-Dollar geschätzt.5 

Containerisierung vs. Serverless

Serverless Computing (Serverless) ist ein Modell für die Entwicklung und Ausführung, mit dem Entwickler Anwendungscode erstellen und ausführen können, ohne Server oder Backend-Infrastruktur bereitstellen oder verwalten zu müssen.

Beim Serverless Computing stellt der Cloud-Service-Provider Maschinenressourcen nach Bedarf bereit und wartet die Server im Auftrag seiner Kunden. Konkret kümmern sich der Entwickler und der CSP um die Bereitstellung der Cloud-Infrastruktur, die für die Ausführung des Codes erforderlich ist, und skaliert die Infrastruktur je nach Bedarf herauf oder herunter. Der Anbieter wendet ein nutzungsbasiertes Preismodell an.

Serverloses Computing kann die Produktivität von Entwicklern steigern, da sich Teams auf das Schreiben von Code konzentrieren können, anstatt sich um die Verwaltung der Infrastruktur zu kümmern. Im Gegensatz dazu bieten Container mehr Kontrolle und Flexibilität, was bei der Verwaltung vorhandener Anwendungen und deren Migration in die Cloud hilfreich sein kann.

Containerisierung und Sicherheit

Sicherheitsverfahren für Containerumgebungen erfordern eine Strategie, die den gesamten Lebenszyklus von Containern abdeckt, einschließlich Entwicklung, Test und Bereitstellung.

Diese Verfahren müssen alle Stack-Ebenen abdecken, einschließlich der Containerisierungsplattform, der Container-Images, der Orchestrierungsplattform und der einzelnen Container und Anwendungen.

In erster Linie müssen sich die Sicherheitsrichtlinien für Container auf ein Zero-Trust -Framework stützen. Dieses Modell überprüft und autorisiert jede Benutzerverbindung und stellt sicher, dass die Interaktion die bedingten Anforderungen der Sicherheitsrichtlinien des Unternehmens erfüllt. Eine Zero-Trust-Sicherheitsstrategie authentifiziert und autorisiert außerdem jedes Gerät, jeden Netzwerkfluss und jede Verbindung auf der Grundlage dynamischer Richtlinien, indem sie den Kontext aus möglichst vielen Datenquellen nutzt.

Die Containersicherheit ist zu einem immer wichtigeren Anliegen geworden, da immer mehr Unternehmen bei der Bereitstellung und Skalierung ihrer Anwendungen auf Containerisierungstechnologie, einschließlich Orchestrierungsplattformen, setzen. Laut einem Bericht von Red Hat6 sind Schwachstellen und Fehlkonfigurationen die größten Sicherheitsbedenken bei Container- und Kubernetes-Umgebungen.

Wie bereits erwähnt, bieten containerisierte Anwendungen grundsätzlich ein gewisses Maß an Sicherheit, da sie als isolierte Prozesse ausgeführt werden können und unabhängig von anderen Containern funktionieren. Durch diese vollständige Isolierung kann verhindert werden, dass schädlicher Code andere Container beeinträchtigt oder in das Host-System eindringt. Allerdings werden Anwendungsebenen innerhalb eines Containers oft über mehrere Container hinweg gemeinsam genutzt. In Bezug auf die Ressourceneffizienz ist dies ein Plus, aber es öffnet auch die Tür für Störungen und Sicherheitsverletzungen über Container hinweg. Dasselbe gilt für das gemeinsame Betriebssystem, da mehrere Container mit demselben Host-Betriebssystem verbunden werden können. Sicherheitsbedrohungen für das gemeinsame Betriebssystem können sich auf alle zugehörigen Container auswirken. Umgekehrt kann ein Container-Angriff möglicherweise in das Host-Betriebssystem eindringen.

Aber was ist mit den Risiken und Schwachstellen, die mit dem Container-Image selbst verbunden sind? Eine robuste Containerisierungsstrategie beinhaltet einen „Secure-by-Default”-Ansatz, bei dem die Sicherheit in der Plattform verankert und nicht eine separat bereitgestellte und konfigurierte Lösung sein sollte. Zu diesem Zweck unterstützt die Container-Engine alle standardmäßigen Isolationseigenschaften, über die das jeweilige Betriebssystem verfügt. Sicherheitsberechtigungen können definiert werden, um das Eindringen unerwünschter Komponenten in Container automatisch zu blockieren oder die Kommunikation mit unnötigen Ressourcen einzuschränken.

Linux Namespaces ermöglicht beispielsweise eine isolierte Ansicht des Systems für jeden Container. Dies umfasst Netzwerke, Einhängepunkte, Prozess-IDs, Benutzer-IDs, Interprozesskommunikation und Hostnamen-Einstellungen. Namespaces können den Zugriff auf diese Ressourcen durch Prozesse innerhalb jedes Containers einschränken. In der Regel sind Subsysteme ohne Namespace-Unterstützung nicht von einem Container aus zugänglich. Administratoren können diese „Isolationsbeschränkungen” für jede containerisierte Anwendung über eine einfache Benutzeroberfläche erstellen und verwalten.

Darüber hinaus steht eine Vielzahl von Lösungen für die Containersicherheit zur Verfügung, um die Erkennung und Abwehr von Bedrohungen im gesamten Unternehmen zu automatisieren. Diese Tools helfen bei der Überwachung und Implementierung von Sicherheitsrichtlinien und erfüllen Branchenstandards, um einen sicheren Datenfluss zu gewährleisten. Beispielsweise können Sicherheitsmanagement-Softwaretools dabei helfen, CI/CD-Pipelines zu automatisieren, Schwachstellen vor der Produktion zu blockieren und verdächtige Aktivitäten in Echtzeit zu untersuchen. Dieser Ansatz ist Teil von DevSecOps, dem Anwendungs- und Entwicklungsprozess, der die Integration von Sicherheitspraktiken auf jeder Ebene des Softwareentwicklungslebenszyklus automatisiert.

Weiterführende Lösungen
IBM Cloud Kubernetes Service

Verwenden Sie einen verwalteten Kubernetes Service, der es Benutzern ermöglicht, containerisierte Anwendungen in einer sicheren und flexiblen Kubernetes-Umgebung bereitzustellen, zu verwalten und zu skalieren.

Cloud Kubernetes Service kennenlernen
Red Hat OpenShift

Beschleunigen Sie die Entwicklung von Containeranwendungen mit der vollständig verwalteten Red Hat OpenShift-Plattform von IBM Cloud. Nutzen Sie die Flexibilität von Kubernetes mit leistungsstarken Integrationen und Support.

Red Hat OpenShift erkunden
Hybrid-Cloud-Lösungen

Optimieren Sie Ihre digitale Transformation mit den Hybrid-Cloud-Lösungen von IBM, die für die Optimierung der Skalierbarkeit, Modernisierung und nahtlosen Integration in Ihre IT-Infrastruktur entwickelt wurden.

Hybrid-Cloud-Lösungen erkunden
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