Docker: Installation von Docker auf Windows 10

Einführung

Docker ist eine sehr populäre Container-Lösung, die es ermöglicht dedizierte Systeme in einer Art virtuelle Maschine, ohne den bisher üblichen Overhead auf einem Linux System laufen zu lassen.

Nun ist es möglich Docker auch auf Windows 10 Native zu installieren. Es klingt sich hierbei tief in Hyper-V ein und ermöglicht nun eine Plattformunabhängigkeit.

Details hierzu auch unter: https://docs.docker.com/docker-for-windows/

Installation von Docker

Zunächst ist Docker für Windows 10 herunter zu laden unter folgenden Link: https://www.docker.com/products/docker

Hier ist die Windows Version herunter zu laden:

Nach dem Download ist Docker, wie ein gewöhnliches Windows-Programm zu installieren:

Nachdem Docker vollständig installiert ist, können wir Docker auch gleich starten lassen:

Nach ein paar Minuten ist Docker dann auch schon bereit verwendet zu werden:

Was ist gerade passiert?

Zunächst wurde eine neue virtuelle Maschine in Hyper-V installiert, diese ist auch über den Hyper-V Manager sichtbar:

Nach dem sich der Hyper-V Manager geöffnet hat, sehen wir hier eine Virtuelle Maschine:

Öffnet man die Konsole der Maschine zeigt sich nur ein schwarzer Bildschirm:

Die neue Docker Version hat also das manuelle Installieren einer Linux-Distribution und möglichen Konfigurationsaufwand erspart.

Erste Schritte in der Kommandozeile und der Virenscanner

Das starten vom Docker Befehl hat bei mir Avira Alamiert und die Ausführung ist abgebrochen:

Alarm von Avira:

Im Echtzeitscanner sieht man auch die Problematik sehr deutlich

Die Docker.Exe muss als Ausnahme definiert werden, damit Avira uns nicht dazwischen funkt:

Wird nun der Befehl Docker in der Kommandozeile eingegeben erscheint nun das korrekte Ergebnis:

Nun können wir versuchen, ob das einfache "Hello World!" für Docker sich nun installieren lässt:

Als nächstes versuchen wir es mal mit einem etwas komplexeren Container, nämlich den nginx Webserver.

Es sind hier mehrere Parameter anzugeben:

-d das er als Deamon läuft (Quasi als Linux-Service)
-p 80:80 er soll den Port 80 verwenden und ihn auch als Port 80 nach aussen darstellen. 
--name Wie wir unseren einfachen WebServer nennen wollen

Kurze Erklärung zu den Kommandozeilen Parametern in Linux: Unter Linux ist es üblich einen Bindestrich zu verwenden, wenn das Kommando nur einen Buchstaben haben, wie hier im Beispiel -d. Hat ein Kommandozeilen Parameter mehrere Zeichen, dann werden zwei Bindestriche verwendet, wie bei --name.

Wir starten nun in der Kommandozeile den folgenden Befehl:

docker run -d -p 80:80 --name web1 nginx  

Bei dem Ausführen des Befehls sehen wir schon eines der wichtigsten Features von Docker, es kümmert sich selbstständig um die Installation der notwendigen Komponenten und nimmt einen viel Konfigurationsarbeit und Installationsarbeit ab. Es sorgt dafür das die Applikation, die wir im Container verwenden wirklich selbstständig rund läuft:

Nachdem die Installation erfolgreich durchgeführt ist, können wir mit dem Befehl docker ps die laufenden Docker Prozesse sehen:

Unter http://docker kann man sich seinen neuen WebServer nun ansehen:

Die wichtigsten Docker Kommandos

Zu Beginn sind nur die folgenden Docker Kommandos am wichtigsten:

docker run - Installiert ein neuen Docker Container  
docker ps - Zeigt alle laufenden Docker Instanzen  
docker start - Startet einen Docker Container  
docker stop - Beendet einen Docker Container  
docker rm - Entfernt einen Docker Container  

Als nächsten beenden wir den "web1" Container:

docker stop web  

Nun zeigt uns docker ps an, dass kein Container mehr läuft. Mit dem Parameter -a können wir auch die stehenden Container ansehen:

Wie zu erwarten bringt uns der Browser nun auch einen Fehler:

Jetzt starten wir noch einmal "web1" und prüfen ob er läuft:

Und auch unser Browser kann jetzt die Seite wieder aufrufen:

Nun entfernen wir noch den unnötigen "Hello World" Container mit "rm":

Zusammenfassung

Installieren und verwenden von Docker ist mittlerweile auch auf Windows 10 keine Raketenwissenschaft mehr, sondern lässt sich sehr schnell und sehr leicht bewerkstelligen. Hierdurch rutschen Betriebssysteme und Abhängigkeiten weiter in den Hintergrund und Docker könnte die Grenzen weitgehend verschwinden lassen.