Windows 10 und Windows Server 2016 – Mal etwas rumgedockert

Mit ab Version 1607 und wurden eine Menge neue Features in die Betriebssysteme gebracht. Zeit mal wieder etwas zu basteln und gleich mal drei dieser Funktionen zu testen. Hierbei handelt es sich um Nested Virtualization, Direct und bzw. .

Aber vorweg genommen. Die nachfolgenden Skripte und Codeausschnitte sind nicht für Produktive Umgebungen geeignet und dient lediglich Testzwecken! Gegebenenfalls helfen euch Teile der Skripte zur Lösung einzelner Probleme.

Ziel: Von meinem Windows 10 Client mit einem PowerShell Skript eine VM für Nested Virtualization vorzubereiten und mit Hilfe von PowerShell Direct Container und Docker zu installieren, ein Image zu laden und dann zu starten.

Voraussetzungen: Windows 10 Client mindestens in der Version 1607 mit installierter Hyper-V Rolle. Weiterhin wird eine Windows Server 2016 als Hyper-V VM benötigt. Weiterhin benötigt die VM Zugriff auf das Internet. Es muss also entweder ein Netzwerkkarte vom Typ „extern“ oder ein virtuelles NAT Switch (siehe Artikel) vorhanden sein. Die Downloadgröße beträgt ca. 5GB. Es sollte also auch genügend Bandbreite oder Zeit vorhanden sein.

Die meisten der benötigten Schritte führe ich direkt von meinem WIndows 10 Client durch. Bis auf eine Ausnahme auf welche ich zum entsprechenden Zeitpunkt verweise müssen wir nicht einmal an der VM anmelden.

OK, damit wir nicht ganz so viel Tippen müssen setzen wir erst einmal ein paar Variablen. Dabei steht die Variable VMNAME für die Windows Server 2016 VM (siehe Voraussetzungen). Weiterhin speichern wir schon mal die Anmeldedaten in der Variable CRED um uns schneller Verbinden zu können:

Weiter geht es mit der Vorbereitung der VM für Nested Virtualization. Voraussetzung hierfür ist das Ausschalten von dynamischen Arbeitsspeicher und das Einschalten der Virtualisierungsunterstützung für die VM. Die Umsetzung erfolgt im ausgeschaltetem Zustand:

Sollte es zu Fehlern kommen wollen wir gegebenenfalls wieder ein stück Zurück springen. Darum erstellen wir erst einmal einen Prüfpunkt (Snapshot oder auch Checkpoint):

An dieser Stelle zur nächsten Neuerung. PowerShell Direct. Wir verbinden uns jetzt weiter direkt vom Windows 10 Client mit der PowerShell der VM. Die benötigten Zugangsdaten haben wir bereits vorab deklariert:

Wenn alles geklappt hat sollten wir in der PowerShell in eckigen Klammern den Namen der VM sehen.

Jetzt benötigen wir noch NuGet und das Modul DockerMsftProvider. Beide installieren wir via PowerShell Direct ebenfalls über unseren Windows 10 Client. Die VM benötigt hier Zugriff auf das Internet!

Der nächste Befehl funktioniert leider nicht via PowerShell Direct. Er scheitert mit einem Bits Fehler welchen ich noch nicht ausschließen konnte. Ihr müsst euch einmalig direkt an der VM anmelden und folgenden Befehl ausführen:

Ein Neustart wird benötigt. Diesen könnt ihr direkt aus der VM oder wieder auf dem Windows Client via PowerShell Direct durchführen.

Nach dem Neustart wieder via PowerShell Direct vom Windows Client eine neue Sitzung initialisieren, den Docker Dienst auf automatischen Start stellen und prüfen ob dieser auch läuft:

Jetzt kommt der langwierige Teil. Wir laden von Docker ein Image herunter welche ca. 5 GB groß ist und anschließend auf ca. 9GB entpackt wird. Ich empfehle an dieser Stelle noch einen Prüfpunkt um im Zweifelsfall wieder zurück springen zu können. Dafür müssen wir die PSSession noch einmal verlassen, den Prüfpunkt erstellen, uns wieder mit der Sitzung verbinden und dann gleich mal den Download mit DOCKER PULL starten:

Haben wir diese Schritte erfolgreich abgeschlossen können wir anfangen mit Docker zu spielen. Dabei startet der letzte Befehl hier im Beispiel das eigentliche Docker Image. Der erste Start kann auch hier wieder etwas dauern.

Für alle Verwirrten. Wir haben uns also von unserem Windows 10 Client mit der PowerShell direkt mit unserer VM verbunden und hierbei eine weitere Sitzung zu einem Windows Container erzeugt. Die Session ist jetzt mehrfach verschachtelt. Damit wir hier wieder rauskommen hilft nur:

Dann sind wir wieder auf unserm Client. Viel Spaß beim probieren!

Schreibe einen Kommentar

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