Container bilden nur das Betriebssystem ab
Container virtualisieren nur das Betriebssystem. Der Container enthält in der Regel nur eine Anwendung inklusive aller zur Ausführung notwendigen Binaries und Bibliotheken.
Der Grundstein für diese Art der Virtualisierung wurde bereits 1979 gelegt. Unix-Entwickler führten CHROOT ein, mit dem sich Teile des Dateisystems isolieren ließen. Diese Technik wurde hauptsächlich zum Schutz von Servern eingesetzt.
In den späten 1990er Jahren gab es Bestrebungen, mit User Mode Linux ein Betriebssystem im Betriebssystem zu betreiben. Bekanntheit erlangten sie aber kaum. Mit FreeBSD Jail kam im Jahr 2000 die erste Virtualisierung mittels Containertechnik.
Ab den 2000er Jahren begannen Webhoster mit OpenVZ und Virtuozzo, viele Hosts isoliert voneinander auf einem physischen Server zu betreiben.
Linux Containers (LXC) ist ein Verfahren zur Virtualisierung auf Betriebssystemebene. Es kombiniert dafür eine Vielzahl von Techniken. Konfiguration und Betrieb erfordern aber viel Fachwissen über Betriebssysteme.
2013 stellte das Unternehmen Dotcloud das Produkt Docker vor. Damit wurde Entwicklern das Verpacken von Anwendungen und Diensten in einen Container erheblich erleichtert. Die Containervirtualisierung erlebte eine massive Verbreitung.
Hardwareressourcen gemeinsam nutzen
Sämtliche Cloudanbieter stellen heute die Virtualisierung über Container, aber auch die Orchestrierung (automatisiertes Bereitstellen, Verwalten, Skalieren usw. von Containern) als Platform as a Service zur Verfügung. Häufig wird dafür Kubernetes oder Openshift verwendet.
Mehrere Container, die auf einem Host ausgeführt werden, teilen sich dessen Kernel und die zugehörigen Binärdateien und Bibliotheken. Die gemeinsame Nutzung dieser Ressourcen führt dazu, dass sie nicht mehrmals kopiert werden müssen. Umgekehrt bedeutet diese Abhängigkeit aber, dass eine Änderung am Host-Betriebssystem Auswirkungen auf alle Container hat.
Die meisten Containersysteme arbeiten mit Images. Diese beinhalten lediglich die Applikation inklusive der nötigen Binaries und Bibliotheken. Die Größe eines Containers beträgt oft nur wenige Megabyte. Das ermöglicht den Start innerhalb weniger Sekunden.
Containervirtualisierung hat die Softwareentwicklung verändert
Der Einsatz der Containervirtualisierung hat die Entwicklung von Software stark beeinflusst. Die Flexibilität und die Möglichkeit der schnellen Bereitstellung führen dazu, dass eine Applikation auf mehrere kleine Services verteilt wird, die unabhängig voneinander laufen (Microservice-Architektur). Das ermöglicht es, einzelne Teile einer Applikation schnell und einfach zu aktualisieren oder zu erweitern.
Durch die vermehrte Verbreitung und Verwendung haben sich Repositories etabliert, die bereits fertige Container-Images enthalten. Nicht alle Images stammen aus vertrauenswürdigen Quellen und sollten vor der Bereitstellung genauestens geprüft werden. Viele Images werden auch von Bastlern bereitgestellt und eventuelle Sicherheitsvorgaben oder Best Practices werden nicht immer eingehalten.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
- ohne Werbung
- mit ausgeschaltetem Javascript
- mit RSS-Volltext-Feed
| Container vs. Virtuelle Maschinen: Vertraue der Macht, Indy | Die wichtigsten Unterschiede zwischen VM und Container |










Der Vergleich im Artikel ist total daneben. Minions vs Mad Max kommt wohl eher hin.
Vielen Dank für die Antwort! Also ist es prinzipiell alles möglich - manchmal muss jedoch...
Das würde ich nicht so sagen. Das trifft auf die durch docker bekannt gewordenen...
Was soll an der Überprüfung von Software in einer VM ein Problem sein? Und kleine VMs...