Definition „Container (Informatik)“

Was sind Container?

| Autor / Redakteur: il1411 / Stephan Augsten

Container sollen in der IT eine effizientere Anwendungsbereitstellung ermöglichen.
Container sollen in der IT eine effizientere Anwendungsbereitstellung ermöglichen. (Bild: snoku - Pixabay.com / CC0)

Ob Docker, Core OS Rocket oder Canonical LXD: Container haben sich bei der Anwendungsentwicklung und -bereitstellung längst etabliert. Wir befassen uns mit der Alternative zur virtuellen Maschine.

Herkunft von Containern

Bekannt wurde der Begriff „Container“ („Behälter“) durch das Docker-Projekt, das im Jahr 2013 gegründet wurde. Bei Docker handelt es sich um eine Open-Source-Software, mit der sich Anwendungen ähnlich wie bei einer Betriebssystemvirtualisierung in Containern isolieren lassen.

Durch dieses Vorgehen wird das Bereitstellen der Anwendungen deutlich vereinfacht. Die in den Containern gespeicherten Anwendungsdaten lassen sich äußerst einfach transportieren und installieren. Darüber hinaus ist durch den Einsatz von Containern gewährleistet, dass die auf einem Computer genutzten Ressourcen strikt voneinander getrennt sind. Ein Anwendungscontainer hat nämlich nie Zugriff auf die Ressourcen anderer Behälter.

Realisiert wurde die Open-Source-Software Docker unter Verwendung verschiedener Linux-Techniken wie Namespaces oder Cgroups. Mittlerweile wird Containern die Rolle als Nachfolger herkömmlicher Virtualisierungstechnologien zugesprochen.

Von Bedeutung sind sie auch im im Rahmen der Server-Virtualisierung. Bei Windows Server 2016 gehörten Windows Server Container nämlich zu den wichtigsten Neuerungen. Auf diese Weise sollen Nachteile vermieden werden, die sich aus der Server-Virtualisierung auf Grundlage herkömmlicher Technologien ergeben.

Docker und andere Container unter Windows

Grundlagenwissen Container

Docker und andere Container unter Windows

12.01.17 - Die Container-Technologie Docker hat ihren Weg in Windows Server 2016 und die Cloud gefunden. Den Beweis, dass Container zahlreiche Vorteile für Entwickler und Unternehmen bieten, konnten sie schon unter Linux antreten. lesen

Definition

Definieren lässt sich ein Container als eine virtuelle Maschine, die einer kompletten Anwendung inklusive ihrer Konfiguration und Abhängigkeiten entspricht. Verpackt ist diese Anwendung in einem genau definierten und wiederverwendbaren Format.

Im Gegensatz zu einer „echten“ virtuellen Maschine enthält ein Container allerdings kein eigenes Betriebssystem oder eigenen Kernel. Es handelt sich somit nicht um eine Betriebssystemvirtualisierung. Aus diesem Grund fallen Container deutlich schlanker aus als herkömmliche virtuelle Maschinen. Eben weil es sich um keine echten virtuellen Maschinen handelt, spricht man in diesem Zusammenhang auch von der Virtualisierung von Anwendungen.

Technische Grundlagen

Anwendungscontainer basieren technisch auf Funktionen, die unter dem Betriebssystem Linux schon länger verfügbar sind. Diese Funktionen – zum Beispiel cgroups, Namespaces und SELinux – setzt der Kernel dazu ein, um Anwendungen zu isolieren. So lässt sich realisieren, dass Anwendungen voneinander isoliert als Prozess in verschiedenen Benutzerkonten laufen, obwohl sie gleichzeitig zu einer gemeinsamen Linux-Umgebung gehören.

Die Zusammenarbeit verschiedener Anwendungen ist ebenfalls möglich. Laufen die Behälter auf dem gleichen Rechner, setzt man hierzu einen Container-Daemon ein. Befinden sich die Container auf unterschiedlichen Hosts, verwendet man beispielsweise einen Load-Balancer.

Ein Image des Dateisystems bildet die Grundlage eines jeden Containers. Beim Image hat der Nutzer die Wahl: Er kann sowohl auf ein bereits erstelltes Image zurückgreifen oder es selbst erstellen.

Vorteile von Containern

Eine komplette virtuelle Maschine, die eine vollständige Betriebssystemvirtualisierung mit sich bringt, produziert einen relativ großen Overhead. Dieser lässt sich durch die Verwendung von Containern vermeiden. Container starten deshalb sehr viel schneller und benötigen deutlich weniger Ressourcen als herkömmliche virtuelle Maschinen.

Anwendungscontainer können darüber hinaus in völlig identischer Form auf verschiedenen Systemen laufen. Fehler der Kategorie „auf dem anderen Rechner lief es aber“ verlieren daher an Bedeutung.

Grafische Oberflächen in Container-Umgebungen testen

GUI und Container

Grafische Oberflächen in Container-Umgebungen testen

29.05.17 - Der Vorteil von Containern besteht vor allem darin, dass sie schnell einsatzbereit sind. Damit eignen sie sich als Testumgebung für Graphical User Interfaces ebenso wie für komplette Anwendungen. lesen

Container zeichnen sich außerdem durch eine sehr gute Skalierbarkeit aus. Die verbesserte Skalierbarkeit passt optimal zu den Anforderungen der inzwischen hochdynamischen IT in Unternehmen. Eine hohe Skalierbarkeit der Container ermöglicht nämlich, die Kapazitäten für die Bereitstellung von Anwendungen an die Nutzer ideal anzupassen.

Mittlerweile lassen sich auch große Container-Setups problemlos verwalten. Hierzu gibt es spezielle Orchestrierungssysteme wie Apache Mesos oder Google Kubernetes. Diese Systeme verteilen die Container auf Grundlage vorgegebener Regeln über die vorhandene Hardware und überwachen sie.

Nachteile von Containern

Trotz aller Vorzüge bringen Anwendungscontainer auch einige Nachteile mit sich. Die Isolierung der einzelnen Behälter sowohl dem Host gegenüber als auch untereinander bleiben hinter den Möglichkeiten der herkömmlichen Virtualisierungstechnologien deutlich zurück.

Da sich die in den Containern enthaltenen Prozesse alle die gleichen Systembibliotheken und den gleichen Kernel teilen, können Kompatibilitätsprobleme die Folge sein. Auch Sicherheitslücken oder Softwarefehler können bei der Verwendung von Containern zu einem echten Problem werden und das System in seiner Gesamtheit in Mitleidenschaft ziehen.

Kommentare werden geladen....

Kommentar zu diesem Artikel

Der Kommentar wird durch einen Redakteur geprüft und in Kürze freigeschaltet.

Anonym mitdiskutieren oder einloggen Anmelden

Avatar
Zur Wahrung unserer Interessen speichern wir zusätzlich zu den o.g. Informationen die IP-Adresse. Dies dient ausschließlich dem Zweck, dass Sie als Urheber des Kommentars identifiziert werden können. Rechtliche Grundlage ist die Wahrung berechtigter Interessen gem. Art 6 Abs 1 lit. f) DSGVO.
  1. Avatar
    Avatar
    Bearbeitet von am
    Bearbeitet von am
    1. Avatar
      Avatar
      Bearbeitet von am
      Bearbeitet von am

Kommentare werden geladen....

Kommentar melden

Melden Sie diesen Kommentar, wenn dieser nicht den Richtlinien entspricht.

Kommentar Freigeben

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

Freigabe entfernen

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

Aktuelle Beiträge zu diesem Thema

Die ideale DevOps-Teamstruktur

Kooperation nach dem Gesetz von Conway

Die ideale DevOps-Teamstruktur

Die Zusammenarbeit von Development und Operations verbessert und beschleunigt Prozesse. Doch erst eine wohlüberlegte DevOps-Struktur hilft dabei, dass die beiden völlig unterschiedlichen Bereiche reibungslos miteinander kooperieren. lesen

Managed Kubernetes von 1&1 IONOS

Gratis K8s-Service für Kunden der Enterprise Cloud

Managed Kubernetes von 1&1 IONOS

Um Kunden einen komfortablen Start in Container-Technologien zu ermöglichen, erweitert 1&1 IONOS die Enterprise Cloud um einen Managed Kubernetes Service. Die neue Funktion innerhalb der Infrastructure-as-a-Service-Plattform ist kostenlos verfügbar. lesen

8 Tipps für DevSecOps und Continuous Testing

Sichere Web-Applikationen trotz agiler Entwicklung

8 Tipps für DevSecOps und Continuous Testing

Das Tempo und die Agilität, die mit DevOps einhergehen, können sich nachteilig auf die Sicherheit auswirken. Eine Abhilfe verspricht DevSecOps durch die Integration kontinuierlicher Sicherheitsprozesse. Janosch Maier, Co-Founder von Crashtest-Security, hat acht Tipps für entsprechende Strategien parat. lesen

Quelloffene Software im Reifeprozess

Ververica erwartet zunehmende Open-Source-Nutzung

Quelloffene Software im Reifeprozess

In der Anwendungsentwicklung spielen Open-Source-Komponenten eine wichtige Rolle. Das gilt vor allem für große Unternehmen mit vielen Entwicklern, berichtet Ververica mit Blick auf mehrere Studien und wagt eine Prognose zur künftigen Verbreitung. lesen

Mehr Sicherheit mit der Windows-Sandbox

Video-Tipp: Windows-Sandbox

Mehr Sicherheit mit der Windows-Sandbox

Mit Windows 10 Version 1903 führt Microsoft die Windows-Sandbox ein. Mit dieser lassen sich Programme gegen das darunterliegende Betriebssystem abschotten. So kann man bei unbekannten Anwendungen und Dateien verhindern, dass Windows beeinträchtigt wird. In diesem Video-Tipp zeigen wir die Vorgehensweise und Möglichkeiten. lesen

Low-Code-Programmierung von Business Apps mit Simplifier

[Gesponsert]

Dev-Insider Deep Dive

Low-Code-Programmierung von Business Apps mit Simplifier

Mittels Low Code lassen sich Business Apps auch mit begrenztem Development-Know-how erstellen. Eine passende Plattform stellt die Simplifier AG aus Würzburg als einer der wenigen deutschen Anbieter bereit. CIO und Co-Founder Christopher Bouveret zeigt im Deep Dive anhand einer fiktiven Barcode-Scan-App zur Maschinendaten-Anzeige, wie die Plattform schnell überzeugende Ergebnisse liefert. lesen

Azure Cloud Shell wird erweitert

Neue Tools zur Verwaltung der Microsoft-Cloud

Azure Cloud Shell wird erweitert

Microsoft stellt für seine Azure Cloud Shell neue Tools zur Verfügung. Mit der Cloud Shell lassen sich Shell-Befehle in Webbrowsern durchführen und Azure-Ressourcen verwalten. lesen

GitHub Actions API wird CI/CD-fähig

Continuous-Integration- und -Deployment-Workflows

GitHub Actions API wird CI/CD-fähig

Als API für Code-gesteuerte Development-Workflows soll GitHub Actions dabei helfen, ganze Softwareentwicklungsvorgänge zu teilen. CI/CD-Fähigkeiten gingen der Lösung aber ab, wie Beta-Testern auffiel. lesen

10 Vorteile der Open-Source-Nutzung

Kosten, Innovationen, Freiheit, Qualität

10 Vorteile der Open-Source-Nutzung

Ob Betriebssysteme, Container-Management oder Datenverarbeitung: Kaum ein Geschäftsfeld ist so mit Open-Source-Komponenten durchtränkt wie die Software-Entwicklung und -Bereitstellung. Für den zunehmenden Einsatz macht sich Ververica stark und nennt zehn Vorteile des Open-Source-Einsatzes- lesen

copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Infos finden Sie unter www.mycontentfactory.de (ID: 44465865 / Definitionen)