blog.atwork.at

news and know-how about microsoft, technology, cloud and more.

Erste Schritte mit Docker-Teil 3

Nach der Ankündigung von Microsoft Docker in der nächsten Version von Windows Server und (natürlich) in Microsoft Azure zu unterstützen macht es als Developer Sinn, sich mit dieser Art von Applikationsbereitstellung zu befassen.

Was ist Docker - und wie funktionierts?

In Teil 1 dieser Artikelserie haben wir uns angesehen, was Docker ist und wie das Konzept der Applikationsplattform funktioniert. Teil 2 informiert darüber, wie sich Docker anfühlt und wie man das System grundsätzlich per Commandline verwenden kann und zeigt die wichtigsten Commands wie docker pull, docker run usw.

Nun, in Teil 3, wollen wir Docker nicht nur online testen, sondern einmal selbst installieren und das Cloudservice ausprobieren.

Mehr über Docker

Zur Erinnerung: Docker basiert auf dem Host OS und verwendet Container um Apps laufen zu lassen. Somit ist Docker sehr schnell und "leichtgewichtig", da es auf dem bestehenden System läuft und auf (aufeinander aufbauender) Image-Technologie basiert.

Docker selbst ist eigentlich nur die Verwaltungsebene der Container, welche wiederrum eine Fähigkeit des Linux oder Windows Kernels sind, Prozesse nebeneinander zu "sandboxen".

Die Grafik aus "What is Docker?" visualisiert die Unterschiede zwischen einer virtuellen Maschine mit eigenem OS und Docker mit seinen Images.

image

Jede App läuft in einem Container, auf einem physischen System können auch hunderte oder tausende Container laufen.

Docker ist übrigens 100% kostenfrei und ist ein Open Source Projekt. Somit kann jeder kostenfrei Docker nutzen. Weitere Infos zu Docker siehe auch in den Docker FAQ.

Docker installieren

Derzeit läuft Docker nur auf Linux. Bald (voraussichtlich Mitte 2015) wird Docker auch auf Mac OS X und Microsoft Windows lauffähig sein (siehe Ankündigung hier).

Um Docker schon jetzt auf Windows laufen zu lassen, kann eine VM in einer Virtual Box verwendet werden. In der VM läuft dann eine kleine Linux Distribution Boot2Docker.

Hier gibt es die Installationsanleitung für Mac OS X und Microsoft Windows. Für andere Betriebssysteme (wie Ubuntu, Red Hat, CentOS, Debian, Amazon EC2, Fedora, openSUSE etc.) hilft ebenso die Docker Installationsanleitung.

Der Download erfolgt von der GitHub Seite boot2docker/windows-installer. Das exe-Paket ist 121MB groß. und enthält Boot2Docker 1.3.2 (Docker v1.3.2, Linux v3.16.7), das Boot2Docker Management Tool v1.3.2, VirtualBox v4.3.18-r96516 und msysGit v1.9.4-preview20140929. Natürlich steht dort auch der komplette Quellcode als ZIP zum Download zur Verfügung.

Das Video Boot2Docker Windows Install auf YouTube zeigt Schritt für Schritt den Installationsvorgang. Nach Starten von docker-install.exe und Restart wird die Installation von VirtualBox fortgesetzt.

image

Darin wird die virtuelle Maschine Boot2Docker erstellt und gestartet. Der Docker Client kann sofort verwendet werden, die VM startet mit dem Docker-Prompt.

Ausprobieren

Darin können nun Container über die Docker Client-Funktionen geladen und ausgeführt werden. Das Demo verwendet docker run busybox echo Hello Docker! um das Image (und alle darunterliegenden Images) aus dem Docker Hub downzuloaden und einen Prozess im Container zu starten.

image

Das Command wurde in gelb eingefärbt, der Output für das Laden der Images blau und die Ausgabe in grün, um die Prozesse besser sichtbar zu machen (bzw. das kurze Video ansehen). Man sieht sehr schön an den IDs, dass das Image weitere Images automatisch nachlädt.

Dies ist die grundsätzliche Anwendungsweise von Docker: Images (eine App) laden und starten. Und natürlich verwalten...

Installation mit Hyper-V

Zur Installation noch ein wichtiger Hinweis: Solange unter Windows noch keine Virtualisierungs-Software installiert ist, läuft der Betrieb von Oracle´s Virtual Box meist problemlos.

Wenn bereits Hyper-V installiert ist (z.B. durch Visual Studio mit Windows Phone Emulator), können beide VM-Systeme (Hyper-V und Virtual Box) nicht gleichzeitig laufen!

In solchen Szenarien wäre es natürlich fein, wenn man Boot2Docker anstelle von Virtual Box in Hyper-V laufen lassen könnte. Netterweise hat Shawn Cicoria in seinem MSDN-Blog einen Artikel darüber geschrieben, wie das funktioniert. Interessierte finden in Getting Docker Running on Hyper-V 8.1/ 2012 R2 die Anleitung hierfür. Ich selbst hatte noch keine Zeit, das auszuprobieren, werde das aber in den nächsten Tagen mal testen.

Verwenden von Docker

Wenn dann mal die Docker-Umgebung läuft, kann das System einmal ausprobiert werden.
Hierbei hilft der Docker User Guide, der online verfügbar ist.

image

...und natürlich die Basis Commands aus unserem Teil 2.

Docker Hub

Um öffentlich verfügbare Docker Images aus dem Docker Repository, dem "Docker Hub", zu verwenden, ist eine einmalige Benutzerregistrierung erforderlich. Die Registrierung erfolgt unter https://hub.docker.com/account/signup/ - oder man verwendet GitHub zur Authentifizierung.

Einmal die email-Adresse bestätigen und schon geht es los...

SNAGHTML120e7fec

Docker Hub ist ein Cloud-Service, wo man eigene Images (Apps) uploaden kann und auch Workflows zur Automatisierung verwenden kann. Es gilt also ein neues Development Ökosystem zu entdecken. Zwinkerndes Smiley

Die Spielwiese ist eröffnet...

Aus meiner Sicht bietet die Architektur von Docker viele Möglichkeiten. Die Fähigkeit (in Zukunft auch unter Windows), fertig installierte Apps in kleinen, schlanken und performanten Containern auszuliefern ist sehr reizvoll und kann auf lange Sicht das Konzept, wie Unternehmen Apps deployen, ändern.

Viel Spaß mit Docker und dem Entdecken der "App-Container"!

Quicklinks:

Loading