Das könnte dich auch interessieren

Du hast deinen AdBlocker an?

Es wäre ein Traum, wenn du ihn für t3n.de deaktivierst. Wir zeigen dir gerne, wie das geht. Und natürlich erklären wir dir auch, warum uns das so wichtig ist. Digitales High-five, deine t3n-Redaktion

Entwicklung

Docker: Das steckt hinter der Technologie, die uns die Cloud 2.0 bescheren könnte

    Docker: Das steckt hinter der Technologie, die uns die Cloud 2.0 bescheren könnte
Docker ist ein Container für eure Apps. (Grafik: Docker)

Wäre es nicht schön Applikationen zu entwickeln die auf jeder Hardware funktionieren würden, egal ob auf einer virtuellen Maschine oder einem PaaS? Docker macht das möglich und in diesem Artikel zeigen wir dir wieso.

Als Kind eines PaaS-Services namens dotCloud geboren, bietet Docker die Möglichkeit, Software innheralb und für Software-Container auf einer Server-Virtualisierung zu entwickeln, wobei die Docker-Container völlig unabhängig von Betriebssystemen oder Infrastruktur arbeiten. Ihr schreibt eine Applikation und packt sie in einen Docker-Container – unter welchen Bedingungen oder wo dieser Container dann zum Einsatz kommt ist für euch als Entwickler sekundär: Docker ist „platform-“ sowie „hardware-agnostic.“

Da sich weniger um das „Runderherum“ gekümmert werden muss, kann der Softwareentwickler mehr Zeit dafür aufwenden, um die Qualität der Software selbst zu verbessern – zumindest in der Theorie.

Docker in a Nutshell

Um euch einen Überblick zu ermöglichen, versuche ich Docker kurz und knapp darzustellen. Für tiefere Einblicke könnt ihr die Docker-Dokumentation nutzen.

Wenn man von Docker hört, wird wahrscheinlich an eine virtuelle Maschine gedacht – Docker ist aber mehr. Docker beziehungsweise der Docker-Container setzt auf einen „Linux-Container“ (LXC) auf, und erweitert diesen mit einer umfangreichen API. Dadurch ist Docker in der Lage, mit Software wie zum Beispiel Chef, Jenkins, Salt, Vagrant und Ansible zu interagieren.

docker
Docker im Vergleich zu klassischen Virtualisierung. (Grafik: Docker)

Verschiedene Applikationen können sich dieselben „Dependencies“ teilen und sparen somit Speicherplatz, da innerhalb von Docker-Containern auch alternative Versionen einer Applikation gespeichert werden können. Dabei wird dann nicht zweimal die Applikation gespeichert, sondern nur einmal die Applikation selbst und die dazugehörende Veränderung zur Ursprungs-Applikation. Somit bleibt der Docker-Container sehr klein.

Angenommen, ihr habt ein Container-Image mit der Größe von einem Gigabyte – bei einer Virtualisierung mit einer klassishen virtuellen Maschine hättet ihr den Speicherbedarf von einem Gigabyte mal der benötigten virtuellen Maschinenen. Mit LXC und dem Docker-Dateisystem könnt ihr hunderte Docker-Container in etwas mehr als einem Gigabyte laufen lassen – vorausgesetzt ihr nutzt dasselbe Betriebssystem.

Möglich ist das durch das Ressourcenmanagement. Eine klassische virtuelle Maschine bekommt gewisse Ressourcen zugeteilt – Docker-Container sind in der Lage, die gesamte Ressource untereinander und unabhängig aufzuteilen, wie und wo sie gerade benötigt wird.

Ist Docker quasi Cloud2.0?

Wie in diesem Artikel zu lesen ist, teilen der Suchmaschinen-Gigant Google, Amazon und Red Hat die Idee und Vision hinter Docker, nämlich Applikationen schneller, mit höherer Qualität und unabhängig entwickeln zu können.

Docker ist auf jeden Fall einen Blick wert, allerdings sollte man Docker nicht als Lego-Bausatz des Software-Engineerings verstehen, der das Auseinandersetzen mit Inftrastruktur-Fragen oder Datenbank-Management außen vor lässt.

Docker ist nun in der ersten Version erschienen und mit der 1.0-Version möchte das Entwicklerteam der Docker Inc. ihr Produkt als offene Plattform etablieren. Docker setzt sich aus der Docker-Engine, der Container-Runtime und dem Paketierungswerkzeugen sowie der Cloud-basierten Kollaborationsplattform „Docker Hub“ zusammen.

Mit dieser Veröffentlichung wird unter anderem die Build-Anweisung COPY, welche Dateien und Ordner aus dem Build-Kontext kopiert, eingeführt. Mit der Docker-Engine können laufende Docker-Container jetzt gestoppt und wieder gestartet werden, was eine effizientere Ressourcennutzung ermöglicht. Darüber hinaus wird Docker nun von einer vollständigen Dokumentation, Trainings und Dienstleistungen der Docker Inc. begleitet, was auch einen Einsatz im professionellen Raum begünstigt.

Ihr könnt euch Docker auf GitHub herunterladen. Hier findet ihr ein Tutorial wie man Docker in einen „Continious-Integration-Workflow“ einbinden kann.

Habt ihr Docker schon im Einsatz?

Finde einen Job, den du liebst

1 Reaktionen
Snuffy_
Snuffy_

Werde ich auf jeden Fall im Blick behalten...

Antworten

Melde dich mit deinem t3n-Account an oder fülle die unteren Felder aus.

Abbrechen