Suchen

Stärken und Schwächen von Docker und den Alternativen

Container-Technik: Docker & Co.

Seite: 2/4

Firmen zum Thema

Die Funktionsweise von Docker: Pro und Contra

Dank einer Abstraktionsebene, welche die LXC-Fähigkeiten des Linux-Kernels erweitert, erzeugt Docker eine einheitliche, vorhersehbare Laufzeitumgebung, die von der Host-Plattform nicht abhängt. Docker-Container sind daher nicht nur leichtgewichtig sondern vor allem portabel. Dockers bemerkenswerte Fähigkeiten zur isolierten Bereitstellung von Anwendungen in portablen Containern eliminieren nicht nur das Problem von Software- und Infrastruktur-Abhängigkeiten, sondern erlauben eine höhere Auslastung bestehender Ressourcen (eine höhere Dichte als im Falle vollwertiger VMs).

Docker rühmt sich über 100 Millionen Downloads der eigenen Engine.
Docker rühmt sich über 100 Millionen Downloads der eigenen Engine.
(Bild: Docker )

Ein Docker-Container beinhaltet kein Betriebssystem; das Framework nutzt den Kernel des Host-Systems, um die benötigten Ressourcen wie CPU-Zyklen, den Arbeitsspeicher, Blockspeicher-I/O und Netzwerkschnittstellen anzufordern und unter Verwendung von Technologien wie cgroups und Linux-Namensräumen der Anwendung in dem jeweiligen Container isoliert zur Verfügung zu stellen. Zur Kommunikation mit dem Kernel nutzt Docker die integrierte „libcontainer“-Bibliothek, die quelloffene API „libvirt“, LXC oder ein „systemd“-Utility namens „systemd-nspawn“. Soweit so gut.

Übersicht der Docker-Schnittstellen zum Linux-Kernel
Übersicht der Docker-Schnittstellen zum Linux-Kernel
(Bild: Docker )

Die praktische Implementierung von Docker wirft im Hinblick auf die Sicherheit einige berechtigte Fragen auf. Docker wurde als ein Daemon implementiert und läuft mit Root-Rechten des Host-Systems.

Die Sicherheitsimplikationen dieser Entscheidung liegen auf der Hand: eine Sicherheitslücke in einem einzelnen Container kann das gesamte Host-System kompromittieren. Ein Workaround besteht im Einsatz von „SELinux“ oder „AppArmor“ zur Prozessisolierung.

Diese beiden Maßnahmen stellen natürlich keine vollwertige Lösung dar, sondern verstehen sich lediglich als Krücken. Die Entwickler von Docker haben die Sicherheitsmängel auf dem Radar und möchten diese adressieren, allerdings sind bisher kaum Fortschritte zu erkennen. Die Popularität von Docker wächst dennoch unaufhaltsam.

Ergänzendes zum Thema
Link-Sammlung

Lösungen rund um Docker

Einige der führenden Betreiber von Mega-Datencenter, darunter Google (in Zusammenarbeit mit VMware und Pivotal), Amazon, IBM, Rackspace und Microsoft haben hinter Docker ihr ganzes Gewicht geworfen. Bei Googles „Container Engine“ handelt es sich praktisch um eine Art „Docker-as-a-Service“.

Im vergangenen August hat Microsoft eine deklarative Management-Plattform für Docker-Container in Linux-Clustern von Google namens „Kubernetes“ in die eigenen Azure-Dienste integriert. Kubernetes ermöglicht die zeitgesteuerte Verwaltung von Docker-Containern auf mehreren Nodes eines Clusters, eine Aufgabe, welche Docker selbst bisher schlicht überfordert.

Ergänzendes zum Thema
Das Fazit der Autoren:

Die größten Kritikpunkte an Docker konzentrieren sich auf unzureichende Kontrollmechanismen zur Gewährleistung der Datensicherheit, der Datenintegrität und der Verfügbarkeit. Über den zweiten und dritten Punkt kann man sich je nach dem Anwendungsszenario entweder herum arbeiten oder darüber hinweg sehen, nicht jedoch über den ersten.

Solange die Docker-Entwickler die bereits ausgiebig dokumentierten Sicherheitsprobleme völlig unverantwortlich auf die leichte Schulter nehmen, lässt sich die Lösung in ihrer bisherigen Form trotz der unbestreitbaren Vorteile nicht uneingeschränkt empfehlen. SELinux- und AppArmor-Schutzeinstellungen stellen auch keinen Ersatz dar für das Fehlen eines ganzheitlichen Sicherheitskonzeptes.

Vorerst gilt es daher, Docker mit Vorsicht zu genießen. Zum Glück reifen und gedeihen inzwischen interessante Erweiterungen und viel versprechende Alternativen wie Rocket. Auf die Anwender von Container-Technik dürften in naher Zukunft überaus interessante Verbesserungen zukommen.

Für eine künftige Version von Windows Server plant Microsoft, eigene Images für die Docker Engine über Docker Hub, das gemeinschaftliche Repository, bereitzustellen und in Azure via Azure Management Portal und Azure Gallery zu integrieren. Microsoft möchte außerdem an der Weiterentwicklung der quelloffenen Orchestrierungs-APIs für Container-übergreifende Anwendungen von Docker mitwirken.

Docker-Repositories

Dockers eigener Dienst zum Verwalten von Repositories, „Docker Hub“, soll in Kürze in einer Enterprise-Edition für Datencenter und On-Premise-Umgebungen verfügbar sein. Mit dem „Docker Hub Enterprise“ (kurz: DHE) sollen sicherheitsbewusste Anwender ihre Container-Images künftig in privaten Repositories hinter einer eigenen Firewall aufbewahren können. AWS, IBM und Microsoft haben bereits ihre Unterstützung bekundet. Mit der öffentlichen Verfügbarkeit von DHE sei laut Docker im Frühjahr 2015 zu rechnen.

Eine weiter gehende Einführung in die Amazon Web Services (AWS) finden Sie in dem Buch „Schnelleinstieg in AWS: Amazon Web Services auf den Punkt gebracht. EC2-Administration im Schnellverfahren“ (erschienen unter der ISBN-Nummer 978-99959-44-025, siehe: Link)).
Eine weiter gehende Einführung in die Amazon Web Services (AWS) finden Sie in dem Buch „Schnelleinstieg in AWS: Amazon Web Services auf den Punkt gebracht. EC2-Administration im Schnellverfahren“ (erschienen unter der ISBN-Nummer 978-99959-44-025, siehe: Link)).
(Bild: Amazon )

Hinweis:

Für weitere Fragen rund um die Container-Technik stehen Ihnen die Buchautoren unter @d1gitalinfo und @d1gitalPro gerne zur Verfügung.

AWS-Anwender können Docker-Container im Rahmen von „AWS Elastic Beanstalk“ ausführen. Elastic Beanstalk übernimmt in diesem Fall die Provisionierung von Kapazitäten, verwaltet eigenständig die Lastverteilung, skaliert automatisch und überwacht die Gesundheit der Anwendungen in Docker-Containern.

Der enorme Erfolg von Docker hat auch zahlreiche kleinere agile Anbieter dazu angespornt, Lösungen rund um Docker zu entwickeln. Zu den Vorreitern zählen unter anderem Joyent und Canonical.

Artikelfiles und Artikellinks

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Kontaktieren Sie uns über: support.vogel.de (ID: 43246015)