Docker

Docker und sein Wal schlagen Wellen

Uhr | Aktualisiert
von Rodolphe Koller, Marcel Urech

Rund 1 Jahr ist es her, seit die erste stabile Version von Docker veröffentlicht wurde. Seither sorgte die Software bei Entwicklern und Providern für Furore. Die Redaktion hat sich das Phänomen genauer angeschaut.

Logo von Docker (Quelle: Screenshot von docker.com)
Logo von Docker (Quelle: Screenshot von docker.com)

Docker hat im letzten Jahr mächtig Staub in der IT-Branche aufgewirbelt. Kaum ein Open-Source-Tool sorgte 2014 für mehr Aufsehen als die gleichnamige Virtualisierungstechnologie. Die Firma akquirierte über 100 Millionen US-Dollar Kapital und wurde in Blogs und Fachzeitschriften in höchsten Tönen gelobt. Auch Entwickler wurden aktiv. Sie gründeten Gemeinschaften – "Docker Geneva" etwa hat fast 200 Mitglieder. Für das Projekt gibt es mit CoreOS auch eine eigene Linux-Distribution. Docker ging zudem Partnerschaften mit VMware und Microsoft ein. Und Cloud-Anbieter scheinen gerade ein Wettrennen durchzuführen, um ihre Lösungen möglichst schnell Docker-fähig zu machen. Das Start-up mit dem Wal-Logo schlägt also gerade hohe Wellen.

API-Stabilität und Abwärtskompatibilität

Doch was ist Docker überhaupt? Die Firma, die im kalifornischen Start-up-Park Y Combinator beheimatet ist, wurde vom Franzosen Solomon Hykes gegründet. Er entwickelte Docker ursprünglich für das Platform-as-a-Service-Angebot Dot­cloud, das er ebenfalls ins Leben gerufen hatte. 2013 entschied sich Hykes, aus dem internen Firmenprojekt eine offene Virtualisierungstechnologie zu machen. Dotcloud wurde in "Docker Inc." umbenannt und der Code unter die Apache-2.0-Lizenz gestellt. Im Juni 2014 folgte die erste stabile Version der Containerverwaltung. Die Technologie wurde damit für Unternehmen produktiv einsetzbar, und API-Stabilität und Abwärtskompatibilität waren nun gewährleistet.

Danach ging es Schlag auf Schlag weiter, etwa im Dezember mit der Lancierung des ersten kommerziellen Angebots von Docker Inc. Im Frühling konnte weiteres Kapital akquiriert werden, was den Wert des Unternehmens auf rund 1 Milliarde US-Dollar hochschraubte.

Virtualisierung auf der Ebene des Host-Betriebssystems

Was aber macht Docker? Hykes erklärt: ¨Docker ist eine Lösung, die sich an Administratoren von IT-Systemen und Entwickler richtet." Das Projekt beschreibt sich als offene Plattform für "Distributed Apps", die einfach verschoben und ausgeführt werden können. Docker erweitert dabei eine Containertechnologie, die bereits Teil des Linux-Kernels ist. Das Start-up ergänzt den Code hauptsächlich um Funktionen, die Apps beschleunigen und ihre Verteilung erleichtern. Docker basiert auf der Docker Engine. Sie kann alle möglichen Arten von Apps in digitale Container verpacken und ausführen. Diese können über die Cloud-Plattform Docker Hub mit anderen geteilt werden. Die Plattform wurde bereits um einige Tools erweitert – unter anderem um einen App-Hub, den Firmen selbst auf ihrer IT installieren können.

Die Technologie von Docker ist zwar mit alternativen Virtualisierungslösungen von Firmen wie VM­ware, Citrix und Microsoft vergleichbar, sie funktioniert aber anders. Setzt eine Virtualisierung auf einem Hypervisor wie etwa Hyper-V oder vSphere auf, verfügen die einzelnen Instanzen über eigene, unabhängige Kernel. Docker hingegen kombiniert eine Laufzeitumgebung und ein Image Repository, und die Virtualisierung findet auf der Ebene des Host-Betriebssystems statt. Da die normalen Systemaufrufe des Betriebssystems genutzt werden, wird kein vollständiges Gastsystem benötigt.

Docker versus Hypervisor

Im Unterschied zu Hypervisor-basierten virtuellen Maschinen gibt es bei Docker zum Beispiel keine Hardware-Emulation, sondern einen eigenen Prozessraum mit Netzwerkschnittstelle. Docker-Container enthalten nicht nur Anwendungen, sondern auch alle ihre Abhängigkeiten. Die Pakete lassen sich ohne grossen Aufwand verteilen und ausführen. Im Unterschied zu klassischen virtuellen Maschinen benötigt Docker weniger Arbeits- und Festplattenspeicher, und der Ressourcenverbrauch ist deutlich geringer. Ein weiterer Vorteil der Linux-Container gegenüber anderen Lösungen ist die kurze Startzeit von Applikationen.

Die Installation von Docker kann hingegen aufwändig sein und je nach Betriebssystem eine Neukompilierung des Kernels erfordern. Das Ökosystem für die Lösung ist zudem noch bescheiden. Auch über die Sicherheit von Docker wird diskutiert. Die Container müssen viel mit dem darunterliegenden Betriebssystem kommunizieren, was das System laut Kritikern anfällig macht. Docker wird zwar oft über Gastsysteme gelegt, die von Hypervisoren bereitgestellt werden, es kann deren Sicherheitsfunktionen aber nicht nutzen. "Linux-Container sind ausgereift genug, um als Private- oder Public-PaaS eingesetzt zu werden", schreibt der Marktforscher Gartner. "Hinsichtlich sicherer Administration und Verwaltung und auch bei Themen wie Confidentiality, Integrity und Availability enttäuschen sie aber."

Darum fahren Entwickler auf Docker ab

Während sich die meisten Virtualisierungstools an IT-Administratoren und Infrastrukturspezialisten richten, zielt Docker eher auf Entwickler ab. "Die Entwickler können sich so auf die Programmierung fokussieren und müssen sich nicht mit der Konfiguration von Infrastruktur rumschlagen", sagt der Forrester-Analyst Dave Bartoletti. Auch Julia Mateo, Senior Developer bei Hortis in Genf, machte Erfahrungen mit Docker. Sie nutzt die Software in Kombination mit dem "Integration Server" von Jenkins. "Ich schätze es, Applikationen über Docker-Container ausführen zu können, ohne die IT-Umgebung anpassen zu müssen", erklärt die Entwicklerin. "Man kann so Fehler umgehen und sehr schnell loslegen." Ein weiterer Trumpf für die Entwickler ist die Einfachheit, mit der Docker gesteuert werden kann. "Die Erstellung von Docker-Dateien kann mühsam sein, aber der Lernprozess dauert nicht lange", sagt Mateo, die in der Genfer Docker-Community aktiv ist.

Die Begeisterung für Docker erklärt sich auch damit, dass Trends in der Entwicklerszene die Nutzung der Lösung begünstigen. Apps werden heute global distribuiert, und genau das ist eine der Stärken von Docker. Auch die Zusammenarbeit von den Infrastruktur- und Entwicklerabteilungen – für die es mit DevOps mittlerweile einen eigenen Begriff gibt – wird durch Docker erleichtert. Ist ein Docker-Container einmal erstellt, lässt er sich schnell und einfach auf die gewünschten Systeme ausrollen. Unternehmen setzen heute für grosse IT-Umgebungen stark auf Automatisierung. Dabei wird gerade im Open-Source-Umfeld oft auf Software wie Chef oder Puppet gesetzt. Mit den Tools können einzelne Rechner oder ganze Rechnerverbünde einfach konfiguriert werden, zum Beispiel für die Installation und Ausführung von Software oder für die Synchronisation von Dateien. Die Orchestrierungswerkzeuge, die es Administratoren ermöglichen, ihre Server automatisiert zu betreuen, können mit Docker umgehen.

Ein Antreiber der Cloud

Docker ist vor allem für IaaS- und PaaS-Umgebungen attraktiv. Die Anbieter greifen oft auf Containertechnologien zurück, und fast alle davon kündigten in den letzten Monaten die Unterstützung von Docker an.

Amazon ermöglicht es mit dem EC2 Container Service (ECS), Docker-aktivierte Anwendungen in einem Cluster von EC2-Instanzen auszuführen und zu verwalten. Lokal als Container verpackte Anwendungen lassen sich so auf dieselbe Weise bereitstellen wie Container, die durch Amazon ECS verwaltet werden. IBM kündigte zudem eine Integration von Docker in seine Bluemix-Cloud an.

Docker steht auch für Googles Cloud Platform zur Verfügung. Google ergänzte sein Angebot um eine Container Engine, die Docker-Container in virtuellen Maschinen ausführen kann. Ende August machte Microsoft zudem das von Google entwickelte Docker-Verwaltungswerkzeug Kubernetes in seiner Azure-Cloud lauffähig. Mit dem Azure Kubernetes Visualizer veröffentlichte Micro­soft dafür auch gleich noch eine Webanwendung. Das Unternehmen ging im Oktober zudem eine Partnerschaft mit Docker ein. Ziel: Die Technologie auf Windows Server bringen, das Orchestration-API ausbauen und Zugriff auf den Docker-Hub über Windows Server ermöglichen.

Tags
Webcode
2722