Archiv für den Monat: Februar 2015

Docker – First Steps Tutorial

Docker-VMwareDocker ist eine Open-Source-Software, die beim Linux-Betriebssystem dazu verwendet werden kann, Anwendungen mithilfe von Betriebssystemvirtualisierung in Containern zu isolieren. Dies vereinfacht einerseits die Bereitstellung von Anwendungen, weil sich Container, die alle nötigen Pakete enthalten, leicht als Dateien transportieren und installieren lassen. Andererseits gewährleisten Container die Trennung der auf einem Rechner genutzten Ressourcen, sodass ein Container keinen Zugriff auf Ressourcen anderer Container hat (Quelle: Wikipedia). Beginnen wir mit der Installation der aktuellen Docker Version:

Den ersten Container erzeugen wir, in dem wir eine BASH im Container starten:

Da das Image von Ubuntu noch nicht vorhanden ist, wird dieses per PULL von Docker.io gezogen und anschließend durch die Parameter -i und -t eine Shell geöffnet. In dieser Shell installieren wir nun per APT-GET den Apache2 Webserver:

Diese jetzt getätigten Änderungen müssen in das Baseimage gesichert werden durch einen Commit. Ich Vergleiche hier Docker gerne mit Subversion für das Betriebssystem 😉 Den letzten laufenden Container kann man sich mit docker ps -l anzeigen lassen. Diese ID commited man nun und erzeugt so sein eigenes Image:

Die installierte Software (Apache2) in dem jetzt erzeugten Image kann man nun starten:

Die Besonderheit: Apache2 kann nicht über das Startscript in /etc/init.d ausgeführt werden, sondern nur über apache2ctl. Stopt man nun diesen Container, sind die erzeugten Daten (z.B. von WordPress) im /var/www Ordner weg. Damit das nicht passiert, kann man in Docker „Volumes“ einbinden, die solche Änderungen lokal im System speichern. Dazu erzeugen wir einen Ordner im Filesystem der über docker run in den Container „gemounted“ wird.

Zur Überprüfung, ob der lokale Ordner auch genutzt wird, legen wir im lokalen Speicher eine „index.html“ ab. Diese sollte dann bei einem Seitenaufruf angezeigt werden.

docker-datastore

Wenn unser Container zufriedenstellend läuft, kann man ihn ex- und auf einem anderen System importieren. Unabhängig von dem genutzten Linux auf dem Host!

Hier noch ein interessanter Link zu einem Artikel in den VMware Blogs zu Docker. Für die ersten Schritte empfehle ich das wirklich gut gemachte online Tutorial auf der Webseite von Docker.