Docker ist derzeit in aller Munde, aber was ist das überhaupt?

Eines der Buzzwords die derzeit in der IT-Branche ihre Kreise zieht ist der Begriff Docker. Jeder redet drüber, aber was ist das denn ganz genau?

Technisch beschrieben ist Docker eine Open-Source Software zur Isolierung von Anwendungen mittels Containervirtualisierung. Dabei handelt es sich um ein Verfahren mit Hilfe dessen mehrere Instanzen eines Betriebssystems unabhängig voneinander auf einem Hostsystem betrieben werden können. Die meisten Containervirtualisierungen basieren auf dem Betriebssystem Linux. Der eigentliche Begriff tauchte erstmals im Jahr 1979 auf, bekannt wurde es allerdings erst im Jahr 2013, durch Docker. Grundsätzlich ist Docker immer noch auf die Virtualisierung mit Linux ausgerichtet. Allerdings kann Docker mittels Hyper-V oder VirtualBox auf Windows und mittels VirtualBox auf macOS betrieben werden.

Ein Docker-Container beinhaltet alle notwendigen Pakete und ist somit leicht zu transportieren und zu installieren. Der große Vorteil ist, dass mehrere Container vollkommen unabhängig auf einem Hostsystem laufen können. So kann man bspw. eine Anwendung implementieren, die einen separaten Datenbankserver verwendet, ohne eine separate virtuelle Maschine mit allem was dazugehört einrichten zu müssen. Dabei lassen sich die Container schnell starten und äußerst leicht skalieren. In Docker sind das dann einfach zwei unabhängige Container. In der Praxis bringt dies einen entscheidenden Vorteil mit sich, denn die Serverumgebung, auf der später die Anwendung laufen wird, kann auf unserem eigenen Rechner nachgebildet werden. Das verwendete Betriebssystem spielt dabei keine Rolle. Kompatibilitätsprobleme gehören somit der Vergangenheit an. Da Container üblicherweise nicht gepflegt und gepatcht werden, sondern im Falle eines Problems oder einer neuen Version einfach durch einen neuen Container ersetzt werden, gilt es hier sich bei der Planung Gedanken zu machen, wie evtl. im Betrieb anfallende Daten weiterhin bestehen bleiben. Hierfür bietet Docker allerdings diverse Lösungsmöglichkeiten.

Im Bezug zu DevOps spielen Containterlösungen eine nicht unwesentliche Rolle, denn Container bieten den Entwicklern eine saubere Entwicklungsumgebung, in der sie beliebig experimentieren können. Zusätzlich minimieren sie den Aufwand beim Einsatz beträchtlich. Dabei werden die Container zunächst gerne nur für die Entwicklung eingesetzt. Eine Erweiterung auf den Produktionsbetrieb erfolgt dann oft zu einem späteren Zeitpunkt.

Docker mit einem Fracht-Container zu vergleichen finde ich ein äußerst gelungenes Bild; ganz egal, ob dieser Container auf einem Schiff, dem LkW oder dem Zug transportiert wird, er passt immer und das ohne Umbaumaßnahmen vornehmen zu müssen. Um den eigentlichen Inhalt muss sich der Transporteur (außer natürlich wenn Gefahrgut transportiert wird) keine Gedanken machen.

Bildquelle: Privat

mm
Thomas Sobizack
Thomas Sobizack ist Diplom-Informatiker und bei uns im Unternehmen als Berater und Architekt für Microsoft .NET-Anwendungen tätig. Er verfügt über grundlegende Kenntnisse und Erfahrungen mit den Business Intelligence-Produkten der Microsoft SQL Server Plattform. Für die Fachzeitschrift windows.developer schreibt er als Autor zu aktuellen Themen und Trends rund um die Microsoft Entwicklung (.NET, Azure etc.).

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.