Loading
21Dez 2017

0

838

Was ist Docker und warum ist es so bekannt?

Warum Docker so beliebt istDocker ist heißer als heiß weil es Ihnen ermöglicht weit mehr Anwendungen auf den gleichen alten Servern laufen zu lassen. Dabei macht Docker es zudem noch einfach Ihre Applikationen über unterschiedliche Umgebungen hinweg zu verschieben. Nachfolgend finden Sie einige Punkte, die Sie über Docker unbedingt wissen sollten.

Wenn Sie aus Datacenter oder Cloud-IT-Kreisen stammen haben Sie sicherlich schon seit einigen Jahren von Containern im Allgemeinen und insbesondere von Docker gehört. Mit der Veröffentlichung von Docker 1.0 im Juni 2014 wurde aus Begeisterung Faszination.

Der ganze Rummel um Docker kam auf, da Unternehmen Docker mit einer bemerkenswerten Geschwindigkeit in deren IT-Systeme implementierten. Auf der OSCon im Juli 2014 stoß man schon auf einige Unternehmen, die ihre Server-Anwendungen bereits von virtuellen Maschinen (VM) auf Container migriert haben. James Turnbull, Dockers Vice President of Services and Support, sagte auf der Konferenz “drei der größten Banken, die Docker in der Betaphase eingesetzt haben, haben die Umgebungen nun in Produktion verlagert”. Dies ist ein selbstbewusster Schritt für jene 1.0 Technologie und in der Finanzwelt, in der Sicherheit an erster Stelle steht, fast schon unerhört.

Drei Jahre später ist Docker größer als je zuvor. Forrester-Analyst Dave Bartoletti glaubt, dass derzeit nur 10 Prozent der Unternehmen Container in Produktion einsetzen und ein weiteres Drittel die Technologie testet. Das Unternehmen 451 Research stimmt dem zu. Laut 451 Research erwirtschaften die Containertechnologien, hauptsächlich Docker, im Jahr 2016 einen Umsatz von 762 Millionen US-Dollar. Im Jahr 2020 prognostiziert 451 Research einen Umsatz von 2,7 Milliarden US-Dollar, bei einer durchschnittlichen jährlichen Wachstumsrate von 40 Prozent.

Docker, eine Open-Source-Technologie, ist nicht nur der Liebling von Linux-Mächten wie Red Hat und Canonical. Proprietäre Softwarefirmen wie Microsoft haben sich ebenfalls Docker angenommen.

Docker vs. VMs

Warum lieben nun alle Container und Docker? James Bottomley, früher Parallels CTO für Server-Virtualisierung und ein führender Linux-Kernel-Entwickler, erklärte, dass VM-Hypervisoren wie Hyper-V, KVM und XEN auf der Emulation von virtueller Hardware basieren. Das bedeutet sie sind “Dickfische” was die Systemanforderungen anbelangt.
Container hingegen verwenden gemeinsam genutzte Betriebssysteme. Das bedeutet, dass sie im Hinblick auf die Systemressourcen wesentliche effizienter sind als Hypervisoren. Anstatt die Hardware zu virtualisieren, werden Container auf einer einzelnen Linux-Instanz betrieben. Des wiederum bedeutet, dass Sie den “nutzlosen 99,9 %igen VM-Müll zurücklassen können und mit einer kleinen, sauberen Kapsel, die Ihre Anwendung enthält, arbeiten”, sagte Bottomley.

Daher können Sie laut Bottomley mit einem perfekt abgestimmten Containersystem die Anzahl der Serveranwendungen um das Vier- bis Sechsfache erhöhen. Zusätzlich können Sie Xen- oder KVM-VMs auf der selben Hardware verwenden.
Klingt gut, oder? Sie erhalten also viel mehr Anwendungen auf nur einem Blech. Also warum hat es noch niemand getan? Nun, eigentlichen haben wir es schon getan, Container entstammen einer alten Idee.

Container stammen mindestens aus dem Jahr 2000 und waren bekannt als FreeBSD Jails. Oracle Solaris hatte ebenfalls ein ähnliches Konzept mit dem Namen “Zones”, während Unternehmen wie Parallels, Google und Docker an Open-Source-Projekten wie OpenVZ  und LXC (Linux Containers) arbeiten um Container stabil und sicher zu machen.
Tatsächlich wissen es sicherlich nur wenige von Ihnen, aber die meisten verwenden seit Jahren Container. Google hat seine eigene Open-Source Container-Technologie Imctfy. Jedes mal, wenn Sie einige der Google-Funktionen nutzen – Web-Suche, Google-Mail, Google-Docs, was auch immer – erhalten Sie einen neuen Container.

Docker ist jedoch auf LXC aufgebaut. Wie bei jeder Containertechnologie gibt es für das Programm ein eigenes Dateisytem, Speicher, CPU, RAM etc. Der Hauptunterschied zwischen Containern und VMs besteht darin, dass der Hypervisor zwar das gesamte System abstrahiert, die Container jedoch  nur den Betriebssystemkern abstrahieren.
Das wiederum bedeutet, dass Hypervisoren nur das tun können was Container nicht können indem sie verschiedene Betriebssysteme oder Kernel verwenden. So können Sie beispielsweise Microsoft Azure verwenden um beide Instanzen von Windows Server 2012 und SUSE Linux Enterprise Server gleichzeitig auszuführen. Bei Docker müssen alle Container das gleiche Betriebssystem und den gleichen Kernel verwenden.

Auf der anderen Seite, wenn Sie nur die meisten Serveranwendungen auf der geringsten Menge an Hardware ausführen möchten ist es Ihnen wahrscheinlich egal, ob Sie mehrere Betriebssystem-VMs ausführen. Wenn Sie mehrere Kopien der gleichen Anwendung benötigen werden Sie Container lieben.
Dieser Schritt kann einem Rechenzentrum oder einem Cloud-Anbieter jährlich mehrere Millionen Dollar an Strom- und Hardwarekosten einsparen. Es ist also kein Wunder, dass diese Anbieter schnellstmöglich versuchen die Umgebungen auf Docker anzupassen.

Docker bringt einige neue Dinge auf den Tisch die frühere Technologien nicht hatten. Ein Punkt ist, dass Docker Container einfacher und sicherer als frühere Ansätze bereitgestellt und verwendet werden können. Da Docker auch Partnerschaften mit anderen Container-Distributoren wie Canonical, Red Hat und Parallels auf seinen Open-Source-Komponenten “libcontainer” unterhält, hat dies eine entsprechende Standardisierung von Containern mit sich gebracht.

Gleichzeitig können Entwickler mit Docker jede Anwendung als leichten, tragbaren und autarken LXC-Container packen, versenden und ausführen (build, ship, run). Dieser kann praktisch auf jeder Plattform ausgeführt werden. Bottomley fügte an “Container erlauben Ihnen sofortige Anwendbarkeit”.

Um nun alles kurz zusammenzufassen ist nun hier, was Docker für Sie tun kann:

  • Docker kann mehrere Anwendungen auf der gleichen Hardware autark voneinander betreiben
  • Docker erleichtert Entwicklern die schnelle Erstellung von sofort einsatzbereiten Containeranwendungen
  • Docker erleichtert das Verwalten und Bereitstellen von Anwendungen

Wenn man nun alle diese Punkte betrachtet versteht man warum Docker zu einer solchen “Hype-Technologie” geworden ist.