Docker spart Zeit und Ressourcen

Docker ermöglicht effizientere Virtualisierung von Anwendungen als mit klassischen virtuellen Maschinen.

Docker Container sind wesentlich kleiner, sicherer und leichter zu verwalten.

Wie funktionieren Docker Container?

Wie Transportgüter per Zug oder Schiff in Containern von A nach B verfrachtet werden, lassen sich auch Softwareanwendungen mit der Docker-Technologie in sogenannten Containern flexibel zwischen verschiedenen Systemen transportieren.

Der Betrieb einer Anwendung auf einer virtuellen Maschine erfordert neben der eigentlichen Applikation weitere Ressourcen, wie ein vollwertiges Betriebssystem und ggf. weitere Dienste und Applikationen. Diese sorgen für enormen Overhead und große Abhängigkeiten.

Mit der Isolation von Applikationen in Docker Containern lassen sich diese effizienter virtualisieren als mit „klassischen“ VM’s. Bei Containern handelt es sich um gekapselte virtuelle Laufzeitumgebungen, die nur die Anwendung und ihre dazugehörigen Abhängigkeiten, wie Bibliotheken, umfassen und ihnen eine reguläre Server-Umgebung bereitstellen. Der Container wird als isolierter Prozess auf dem Host-Betriebssystem ausgeführt und teilt sich die Ressourcen (Prozessor, RAM, Bandbreite) mit weiteren Docker Containern. Dabei lässt sich exakt definieren, wie viele Ressourcen ihm zur Verfügung stehen. Container lassen sich einzeln bereitstellen, aufrufen und aktualisieren und sorgen somit für mehr Flexibilität.




Wofür lässt sich Docker einsetzen?

Automatisierung des Rechenzentrumsbetriebs

Docker Container erleichtern v.a. beim massenweisen Einsatz den Rechenzentrums-Betrieb, da sie vorkonfektionierte Software enthalten, die unabhängig vom Inhalt einheitlich gemanagt werden kann. Admins müssen sich nicht mehr mit speziellen Anforderungen an das Betriebssystem oder mit programm- und plattformspezifischen Installationen herumschlagen, da die Container diese Eigenschaften kapseln.

Continuous Deployment



Durch die Loslösung von externen Abhängigkeiten mittels containerisierten Anwendungen in einer stabilen Laufzeitumgebung, können diese unabhängig über Systeme hinweg bewegt werden. Z.B. vom lokalen Laptop des Entwicklers in eine Test-Umgebung, ins Rechenzentrum oder eine Public Cloud, ohne dass unterschiedliche Software-Umgebungen hierbei zu Problemen führen. Das ist die notwendige Voraussetzung um schnell und unaufwändig Updates zu deployen und damit den DevOps Kreislauf zu schließen.

Agile Softwareentwicklung



Container sind ein unverzichtbares Werkzeug für eine agile und verteilte Softwareentwicklung. Sie gewährleisten, dass die gewünschten kurzen Feedbackzyklen in der Entwicklung nicht durch aufwändige Deploymentprozesse verlängert werden und stellen sicher, dass sich verteilte Anwendungen mit mehreren Bestandteilen im Produktivbetrieb nicht anders verhalten als in der Entwicklungsumgebung.