Docker – Teil 1: Was ist Docker?

XAMPP hat ausgedient. Mit der heutigen Vielfalt an Entwicklungsumgebungen, Servern, PHP Versionen, Frameworks und Tools kann eine statische Entwicklungsumgebung einfach nicht mehr mithalten. Immer mehr Programmierer setzen bei der täglichen Arbeit auf virtuelle Maschinen in denen sie einen Server replizieren, der dann auch auf dem Produktivsystem zum Einsatz kommt.

Tools die das vereinfachen sind zum Beispiel Vagrant und Docker. Die Einarbeitung in Docker fiel mir gar nicht so einfach weswegen ich in dieser Artikelserie nun eine einfache Schritt für Schritt Anleitung geben möchte, wie wir eine Docker VM zum Entwickeln auf einem Windows Rechner installieren und einrichten. Das lässt sich natürlich sehr simpel auf Macs oder Linux Maschinen übertragen.

Den ersten Teil macht erstmal ein genereller Überblick was Docker eigentlich ist und warum es so bekannt geworden ist.

Was ist Docker?

Docker gibt uns die Möglichkeit, Anwendungen in sogenannten Containern auszuführen. Diese Container können aufeinander aufbauen und miteinander kommunizieren. Beispiele für diese Anwendungen wären zum Beispiel ein Apache Server oder eine MySQL Datenbank.

Der Unterschied zu normalen virtuellen Maschinen liegt darin, dass nicht jeder Container ein komplettes Betriebssystem – zum Beispiel Ubuntu 14.04 – mitbringen muss sondern nur die wichtigen Daten für die Anwendung enthält. Wollen wir den Webserver vom Datenbankserver trennen müssten wir also zwei komplette virtuelle Maschinen inklusive Betriebssystem starten. In Docker sind das einfach zwei unabhängige Container, die die jeweiligen Server starten.

In der Webentwicklung bringt uns das einen entscheidenden Vorteil: Wir können die Serverumgebung, auf der später unsere Webanwendung laufen wird, genau auf unserem eigenen Rechner nachbilden – egal ob dieser mit Windows, Linux oder OS X läuft. Kompatibilitätsprobleme gehören damit also der Vergangenheit an. Außerdem können wir die Docker Container ganz einfach an Teamkollegen weitergeben, damit alle am selben Strang ziehen und auf derselben Umgebung entwickeln.

Dieses Verteilen der Docker Container findet über das Docker Hub statt. Aus einem fertig konfigurierten Container können wir ganz simpel ein sogenanntes Image – also ein Abbild des Containers – bilden und dieses ins zentrale Docker Hub hochladen. Dort ist es dann entweder privat oder öffentlich für andere Leute zugänglich und diese können es bei sich benutzen.

Verwirrt? Keine Angst, all das machen wir in den Folgeartikeln ganz langsam und Schritt für Schritt.

Einen weiteren großen Vorteil möchte ich aber noch erwähnen. Docker lässt uns nicht nur die Produktivumgebung abbilden, wir können diese bei diversen Cloud-Hosting Anbietern wie beispielsweise Amazon Web Services sogar mit Hilfe unserer Docker Images einrichten. Das bedeutet einfach wir entwickeln unser Docker Image und konfigurieren es genau so wie wir es brauchen und sagen AWS dann So, und jetzt starte bitte einen Server der genau das kann. Das ist auch der eigentliche Grund, warum ich mich selber näher mit dem Thema Docker beschäftigt habe und natürlich gehe ich in dieser Artikelserie auch darauf näher ein.

 

 

Docker unter Windows

Die Arbeit mit Docker unter Windows hat ein kleines Problem – nämlich dass es noch keine native Windows Version gibt. Docker läuft also eigentlich nur unter UNIX. Die klugen Programmierer dahinter haben dieses Problem aber ziemlich einfach mit dem Tool boot2docker gelöst. Dahinter verbirgt sich ein winzig kleiner Linux Kernel mit dem ihr eine virtuelle Maschine erzeugt. Innerhalb dieser virtuellen Maschine laufen dann eure Docker Container auch auf Windows.

Der erste Schritt für eine erfolgreiche Installation von Docker ist also, boot2docker inklusive der Abhängigkeiten herunterzuladen und zu installieren. Dabei wird sowohl Docker als auch VirtualBox installiert (welches quasi eine Umgebung für beliebige virtuelle Maschinen darstellt – unter anderem eben auch unsere boot2docker Maschine). Außerdem wird noch GIT installiert, da wir einen SSH Client benötigen um in der virtuellen Maschine zu arbeiten.
Falls ihr Teile dieser Liste schon installiert habt – keine Sorge, das boot2docker Installationstool überspringt diese dann automatisch.

 

Nach der erfolgreichen Installation ist unser Rechner bereit für die Arbeit mit Docker – leider war das erst der einfache Teil. Im nächsten Artikel lernen wir die Grundlagen zum Umgang mit Docker Containern.

Möchtest du mehr Infos zum Thema Docker, dann folge mir einfach bei Twitter unter @AbHeuteCoden.

7 Kommentare zu “Docker – Teil 1: Was ist Docker?

  1. Hallo Frank,

    ich stellte mir die Frage was genau Docker ist, wie , wo und warum man Container einsetzt. Super Einführung in ein für mich neues Thema.

    Vielen Dank für die verständliche Darlegung

    Micha27

  2. Der Artikel erklärt leider nur, was Docker nicht ist, nicht was es ist bzw. enthält. Ich wühle mich seit zwei Stunden durchs Internet und lese Einführungen.

    Ich weiß bis jetzt folgendes nicht:
    – enthält Docker einen eigenen Kernel oder nutzt es den Kernel des Wirtssystems?
    – welche Dateien enthalten Docker-Container tatsächlich? „Die wichtigen Daten für die Anwendung“ ist nichtssagend. Irgendwo muss ja wohl auch ein Linux Root Filesystem stecken.
    – greifen Docker-Container auf gemeinsame Komponenten zu, also z.B. ein Grund-Docker-Image von Ubuntu auf das dann Docker-Images mit Anpassungen für die einzelnen Apps zugreifen können?
    – wie groß ist so ein Docker-Image eigentlich typischerweise?
    – welchen Ressourcenverbrauch hat ein Docker Container im Betrieb typischerweise?

    Soll heißen mir geht nach wie vor völlig das Grundverständnis für den technischen Aufbau von Docker ab. Weil es keiner erklärt, nicht mal http://www.docker.com selbst.

    Freundliche Grüße,
    Hayo

    • Die Antwort auf die meisten meiner Fragen enthält die ix Developer 2/2016 im Artikel „Mehr als nur evolutionär“, Absatz „Was steckt hinter Docker?“. Und dieser Absatz ist recht kurz gehalten.

      Grüße,
      Hayo

      • Hi Hayo,

        danke für deinen Kommentar. Da hast du natürlich recht, die technischen Details kommen hier noch deutlich zu kurz, werden aber von einem Anfänger meiner Meinung nach auch nicht benötigt, der sich gerade in die Thematik einarbeitet.

        Vielen Dank für den Hinweis mit der ix Developer, da haben dann interessierte Techniker gleich einen Anhaltspunkt, um tiefer in das Thema einzusteigen!

        Grüße
        Frank

    • Hi Michael,

      da hast du natürlich recht, der Artikel ist schon etwas veraltet. Allerdings braucht man leider Windows 10 Pro oder Enterprise um Docker for Windows zu nutzen, was vermutlich noch nicht so verbreitet ist.
      Hab mir die Pro Version tatsächlich vor kurzem geholt und wenn die Zeit es zulässt werde ich mal einen neuen Windows-Docker Artikel schreiben.

      Konntest du schon Erfahrungen damit sammeln?

      Viele Grüße
      Frank

Schreibe einen Kommentar

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

*