Neue Vorabversion

Windows Server 2016 TP3 - Windows Server Container nutzen

02.09.2015 von Thomas Joos
Wichtigste Neuerung bei der Technical Preview 3 des kommenden Windows Server 2016 sind die Server Container beziehungsweise die Unterstützung von Docker. Wir haben die Container in der Praxis ausprobiert.

Bei der neuen Vorabversion Windows Server 2016 TP3 hat Microsoft verschiedene neue Funktionen integriert. Die Neuerungen, die Bestandteil von Windows Server 2016 TP2 waren, sind auch noch in Windows Server 2016 TP3 dabei. Allerdings hat Microsoft in der aktuellen Version weitere neue Funktionen freigeschaltet, die bisher nicht integriert waren. Im Evaluations-Center des TechNet können interessierte Admins den Windows Server 2016 Technical Preview 3 herunterladen.

Die wichtigste Neuerung ist sicherlich die Integration von Docker. Sie haben in der neuen Version die Möglichkeit Container zu virtualisieren, in denen Anwendungen sozusagen ohne zu Grunde liegendes Betriebssystem virtualisiert werden können. Auf Basis der Container können Sie Workloads aus der Cloud oder ganze Webserver betreiben. Für Anwender ist der Zugriff transparent. Die Einrichtung ist generell einfach gelöst, auch wenn Microsoft hier noch weiter an den Verwaltungsmöglichkeiten arbeitet. So gibt die aktuelle Version der Server-Container nicht deren gesamte Möglichkeiten wieder, zeigt aber ganz gut wohin die Reise geht.

Was sind Windows Server Container?

Die Technologie der Server-Container wurde zusammen mit den Docker-Entwicklern in Windows Server 2016 TP3 integriert. Die Verwaltung erfolgt über die PowerShell, oder indem Sie die entsprechende Umgebung in Microsoft Azure integrieren und dann mit der Eingabeaufforderung verwalten. Der Verbindungsaufbau zum Container-Host erfolgt dagegen per RDP. Wir zeigen die Möglichkeiten der Container in der Praxis. Die Container-Technologie ist ein Serverfeature, welches Administratoren über den Server-Manager integrieren. Dieses ermöglicht erst das Erstellen der Server-Container. Ohne diese Installation beherrscht Windows Server 2016 TP3 kein Docker. Das heißt, diese Erweiterung ist optional, sie ersetzt keine Standardinstallationen.

Sie können dazu auch auf eine Core-Installation von Windows Server 2016 TP3 setzen. Diese ist auch Grundlage der Container, wenn Sie diese über Microsoft Azure zur Verfügung stellen. Haben Sie einen Container erstellt, wird dieser auf Basis der Befehlszeile und der PowerShell verwaltet. Sie haben nahezu die gleichen Möglichkeiten zur Verfügung, wie bei der Verwendung herkömmlicher Core-Server mit Windows Server 2016. Container erhalten auch eine IP-Adresse, auf deren Basis Sie über das Netzwerk eine Verwaltung starten können. Die Technik befindet sich zwar schon in einem recht weit entwickelten Zustand, es ist aber zu erwarten, dass Microsoft in den nächsten Previews noch nachlegen wird.

Bildergalerie:
Windows Server 2016
In der PowerShell starten Sie die Erstellung eines neuen Container-Hosts.
Windows Server 2016
In der Weboberfläche von Microsoft Azure erstellen Administratoren auf Wunsch neue virtuelle Computer mit Server-Container auf Basis von Windows Server 2016 TP3.
Windows Server 2016
Microsoft stellt in Microsoft Azure das Image „Windows Server Container Preview“ zur Verfügung. Dieses basiert auf Windows Server 2016 TP3.
Windows Server 2016
Den virtuellen Server, den Sie in Microsoft Azure als Container-Host betreiben, können Sie in der Weboberfläche konfigurieren.
Windows Server 2016
In der Befehlszeile verwalten Sie die Docker-Container mit einem eigenen Befehl.
Windows Server 2016
Für die Verwaltung der Container-Technologie verwenden Sie die Befehlszeile und die PowerShell. Mit einfachen Befehlen wechseln Sie zwischen den beiden Shells.
Windows Server 2016
In der PowerShell können Sie Container in Windows Server 2016 verwalten.
Windows Server 2016
In der PowerShell erstellen Sie schnell und einfach neue Container und stellen diese auch gleich bereit.
Windows Server 2016
Container verwalten Sie am besten in der PowerShell.

Windows Server Container einrichten

Um Windows Server Container einzurichten installieren Sie zunächst über den Server-Manager das Server-Feature Container. Danach laden Sie sich das PowerShell-Skript zum Erstellen eines neuen Container-Hosts auf Basis von Hyper-V herunter. Dieses steht als Skript-Beispiel in Github zur Verfügung. Sobald Sie das Skript auf dem Hyper-V-Host heruntergeladen und erstellt haben, starten Sie es, um die notwendige VHD für die VM herunterzuladen. Die Syntax dazu ist:

.\New-ContainerHost.ps1 -VmName <Name der neuen VM> -Password <Kennwort>

Durch den Befehl wird eine ZIP-Datei heruntergeladen. Diese wird zum Erstellen einer neuen VM verwendet, die als Container-Host genutzt wird. Innerhalb dieses Hosts werden wiederum verschiedene Container erstellt. Der Download der 6 GByte großen Datei kann einige Zeit dauern. Aktualisieren Sie das Explorer-Fenster über das Kontextmenü, sehen Sie das Anwachsen der Datei.

Container in Microsoft Azure einrichten

Um Container in Microsoft Azure einzurichten, installieren Sie in der Weboberfläche zunächst eine neue VM auf Basis von Windows Server 2016 TP. Sie können dazu auch die kostenlose Testversion von Microsoft Azure verwenden.

Klicken Sie in der Weboberfläche von Microsoft Azure auf Neu. Wählen Sie danach Compute\Virtueller Computer\Aus Katalog.

In der Weboberfläche von Microsoft Azure erstellen Administratoren auf Wunsch neue virtuelle Computer mit Server-Container auf Basis von Windows Server 2016 TP3.
Foto: Thomas Joos

Wählen Sie das Image "Windows Server Container Preview" aus. Dabei handelt es sich um eine Core-Installation von Windows Server 2016 TP3 mit aktivierter Container-Technologie.

Im Assistenten zur Konfiguration des neuen Servers geben Sie den Namen ein und wählen die Größe aus. Außerdem können Sie hier den Benutzernamen und das Kennwort festlegen. Danach wählen Sie noch die Region aus, in welcher der Server bereitgestellt werden soll.

Den virtuellen Server, den Sie in Microsoft Azure als Container-Host betreiben, können Sie in der Weboberfläche konfigurieren.
Foto: Thomas Joos

Haben Sie den Assistenten durchgearbeitet, erstellt Microsoft Azure die VM. Der Vorgang kann einige Zeit dauern. Um Container zu verwalten, verwenden Sie die Befehlszeile oder die PowerShell. Dabei spielt es keine Rolle, ob Sie den Container-Host auf Basis von Windows Server 2016 TP3 in Microsoft Azure bereitstellen, oder mit einem lokalen Server arbeiten.

Wenn der Container-Host in Microsoft Azure bereitgestellt ist, können Sie über die Schaltfläche Verbinden eine RDP-Datei herunterladen, mit der Sie eine herkömmliche RDP-Sitzung aufbauen können. Haben Sie sich mit dem Server über den Remotedesktop verbunden, können Sie die Container in der VM nutzen. Auf diesem Weg verwalten Sie auch Server, die Sie lokal installiert haben.

Erste Schritte mit Docker in Windows Server 2016 TP3

Haben Sie die Befehlszeile geöffnet, verwalten Sie die Docker-Container in Windows Server 2016 TP3 zunächst mit dem Befehl docker. Geben Sie diesen ein, erhalten Sie bereits eine erste Hilfe für die Verwendung der Container in Windows Server 2016 TP3.

Sie können die Container-Technologie aber auch in der PowerShell verwalten. Mit dem Befehl "powershell" starten Sie im Eingabeaufforderungsfenster einer Core-Installation von Windows Server 2016 TP3 eine PowerShell-Sitzung. Wollen Sie zum Beispiel die aktuell verfügbaren Images für Container anzeigen, verwenden Sie das CMDlet Get-ContainerImage. In der Befehlszeile können Sie wiederum den Befehl docker images verwenden um sich die vorhandenen Docker-Container anzuzeigen.

Wollen Sie einen vorhandenen Container erstellen und starten, verwenden Sie den Befehl docker run. Als Optionen geben Sie den Namen des neuen Containers an sowie das Image das der Container als Basis verwenden soll. Die beiden Optionen -it und cmd legen fest, dass der Container mit der Befehlszeile verwaltet wird. Die Beispielsyntax sieht folgendermaßen aus:

docker run -it --name dockertest windowsservercore cmd

Sobald der Container erstellt wurde, können Sie ihn in der Befehlszeile mit der Eingabeaufforderung und der PowerShell verwalten. Um sich eine Liste aller Container auf einem Container-Host anzuzeigen, verwenden Sie den Befehl docker ps -a.

Sie können erstellte Container mit Änderungen, die Sie durchgeführt haben, als neues Image speichern und dieses Image wiederum für neue Container verwenden. Auf diesem Weg erstellen Sie also enorm schnell zahlreiche Container mit allen Einstellungen, die Sie benötigen. Um ein Image zu erstellen, verwenden Sie zum Beispiel folgenden Befehl:

docker commit dockertest meincontainerimage

Sobald Sie das Image erstellt haben, können Sie es mit dem Befehl docker images anzeigen lassen und es als Grundlage für einen neuen Container verwenden:

docker run -it --name dockertest2 meincontainerimage cmd

Um Container zu löschen, verwenden Sie docker rm <Name des Containers>. Images löschen Sie wiederum mit: docker rmi <Name des Images>.

Container in der PowerShell erstellen

Neben der Möglichkeit mit dem Tool docker zu arbeiten, können Sie auch mit der PowerShell Container verhalten. Die PowerShell-CMDlets zum Verwalten von Container zeigen Sie am schnellsten über den Befehl Get-Command -Module containers an. Zunächst zeigen Sie nach der Verbindung mit dem Container-Host die verfügbaren Images an. Dazu verwenden Sie den Befehl Get-ContainerImage in der PowerShell.

Wichtig bei der Erstellung neuer Container sind auch die virtuellen Switches. Diese können Sie mit Get-VMSwitch anzeigen. Container verbinden sich über die virtuellen Switch mit dem Netzwerk. Den Namen der virtuellen Switch müssen Sie bei der Erstellung des Containers gleich mit angeben:

New-Container -Name "Container1" -ContainerImageName WindowsServerCore -SwitchName "Virtual Switch"

Eine Liste aller Container erhalten Sie auch über den Befehl Get-Container. Um den Container zu starten, verwenden Sie den Befehl Start-Container -Name "Container1".

In der PowerShell können Sie Container in Windows Server 2016 verwalten.
Foto: Thomas Joos

Die Verwaltung des Containers nehmen Sie anschließend in der PowerShell vor. Dazu nutzen Sie entweder Invoke-Command oder öffnen direkt eine PowerShell-Sitzung für den Container. Zum Verbindungsaufbau benötigen Sie die ContainerID. Diese erhalten Sie mit

get-container |fl ContainerID

Um mit Enter-PSSession eine Verbindung aufzubauen, verwenden Sie den Befehl:

Enter-PSSession -ContainerId <ID> -RunAsAdministrator

In diesem Beispiel sieht der Befehl folgendermaßen aus:

Enter-PSSession -ContainerId b2f55c8c-28d7-4c0c-ab2b-9ee62c9ae6ea -RunAsAdministrator

Innerhalb der PowerShell-Sitzung stehen die verschiedenen CMDlets zur Verwaltung von Windows Server 2016 zur Verfügung, auch die Befehle zur Verwaltung in der Befehlszeile. Sobald der Verbindungsaufbau durchgeführt ist, steht die PowerShell zur Verwaltung des Containers zur Verfügung. Um zum Beispiel die IP-Adresse des Containers in Erfahrung zu bringen, verwenden Sie den Befehl ipconfig. Mit dem Befehl exit verlassen Sie die Verwaltung des Containers wieder.

Sie können in Containern auch Sitzungen unterbrechen und erneut aufbauen. Bei unterbrochenen Sitzungen laufen die Cmdlets in der Sitzung weiter. Dazu nutzen Sie die Cmdlets Disconnect-PSSession, Connect-PSSession und Receive-PSSession.

Wollen Sie von einer lokalen PowerShell-Sitzung über das Netzwerk Programme auf einem Container starten, verwenden Sie folgenden Befehl:

Invoke-Command -ContainerId <ID> -RunAsAdministrator -ScriptBlock { <Befehl> } - RunAsAdministrator

Ein Beispiel für die Ausführung ist:

Invoke-Command -ContainerId b2f55c8c-28d7-4c0c-ab2b-9ee62c9ae6ea -RunAsAdministrator -ScriptBlock { ipconfig } - RunAsAdministrator

Fazit und Ausblick

Man merkt Windows Server 2016 mittlerweile den sehr weiten Entwicklungsstand an. Mit jeder Technical Preview bietet Microsoft mehr Möglichkeiten und Neuerungen des neuen Betriebssystems. Die Server-Container sowie die neue Nano-Installation stellen sicherlich die wichtigsten Neuerungen dar.

In Sachen Network Controller und Host Guardian Service stehen für die nächsten Technical Previews zu erwartende funktionale Neuerungen an. Hinsichtlich des Veröffentlichungstermins von Windows Server 2016 hat Microsoft bislang nur angekündigt, das dieser im Laufe des nächsten Jahres erscheinen wird. (mje)