Tags: Windows Server 2016, Container
Damit Anwendungen in einem Container starten können, muss erst
das Container-Feature aktviert werden. Anschließend lassen sich Windows Server Container auf einem Windows Server Core oder einem Nano Base Image erstellen und mit PowerShell administrieren.
Windows Server Container sind leichtgewichtig und werden nach dem Prinzip Just enough Virtualization auf physikalischen oder virtuellen Container-Hosts platziert. Sie lassen sich schnell erstellen, zügig starten und erlauben eine höhere Dichte als virtuelle Maschinen.
Im Artikel Container in Windows Server 2016: Funktionsweise, Typen, Anwendungen habe ich eine erste Übersicht über Container in Windows Server 2016 gegeben, auf die nun dieser praktische Teil aufbaut.
Update 26.10.2016: Dieser Beitrag beschreibt die Erstellung und Verwaltung von Containern mit dem PowerShell-Modul, wie es in der TP5 noch vorhanden war. Nach Erreichen des RTM-Status hat Microsoft mehrere in diesem Artikel verwendete Cmdlets entfernt und arbeitet diesem MSDN-Beitrag zufolge an einem neuen PS-Modul für Docker-Container.
Aktuell lassen sich Container mit Docker-Kommandos einrichten und verwalten. In dieser Anleitung beschreibe ich die wichtigsten Schritte und die dafür zuständigen Befehle.
Container Host vorbereiten
Das Feature Containers lässt sich wie üblich im Server Manager mit dem Wizard Rollen und Features hinzufügen aktivieren. Windows Server 2016 muss nach erfolgreicher Installation neu gestartet werden. Im Labor dient ein virtueller Member Server für das Deployment der Container.
Alternativ zum Server Manager aktiviert PowerShell Containers mit Install-WindowsFeature.
Nach dem Neustart des Servers kann mit dem PowerShell-Befehl
Get-Command -Module Containers
die aktuelle Liste der Cmdlets zur Verwaltung dieses Features ausgegeben werden. Befehle wie beispielsweise Get-Container, New-Container oder Start-Container gebrauche ich im Verlauf dieses Beitrags.
Auf einem frisch installierten Container-Host gibt das Cmdlet Get-ContainerImage kein Ergebnis aus. Für eine Container-Erstellung werden erst einmal OS Base Images wie Core- oder Nanoserver benötigt. Ein Get-ContainerHost zeigt den aktuellen Host samt Pfad zum eigenen Image Repository an: "C:\ProgramData\Microsoft\Windows\Hyper-V\Container Image Store".
Container OS Base Images herunterladen und installieren
Base Images lassen sich laden, nachdem
Install-PackageProvider ContainerImage -Force
(Stand ContainerImage Version 0.6.4.0) ausgeführt wurde, anschließend gibt das Repository die beiden Images für den Core- und den Nano Server mit Find-ContainerImage preis. Welches Base Image zum Container-Host passt, klärt die Tabelle im Grundlagenartikel. Auch sollten die Versionsnummer mit dem Host übereinstimmen.
Ein Download mit anschließender Installation zum Beispiel für ein Nano OS WIM erfolgt mit dem Aufruf
Install-ContainerImage -Name NanoServer
Wurde ein OS Image installiert, kann Get-ContainerImage die bestehenden Images anzeigen. Über
Get-ContainerImage -Name NanoServer | Uninstall-ContainerOSImage
lässt sich ein Base Image wieder entfernen.
Bequeme Variante mit Script
Die bisher geschilderten Schritte zur Vorbereitung des Container-Hosts kann man mit Hilfe eines Scripts von Microsoft automatisieren. Es lässt sich mit
wget -uri https://aka.ms/tp5/Install-ContainerHost -outfile C:\ContainerSetup.ps1
importieren. Wenn Sie ContainerSetup.ps1 ausführen, dann prüft es unter anderem, ob das Container-Feature vorhanden ist, installiert auch den Docker-Daemon und lädt ein Windows Server Core OS Base Image herunter.
Windows Server Container erstellen, starten und stoppen
Der Aufruf von
New-Container -Name "WPRO-C-01" -ContainerImageName WindowsServerCore
erstellt auf Basis der OS Images einen neuen Container. In diesem Fall erstelle ich gleich mehrere davon, die dann sehr schnell im ausgeschalteten Zustand vorliegen.
Ein Get-Container zeigt alle Container auf dem Host an und mit
Start-Container -Name "CONTAINERNAME"
können sie gestartet und mit
Stop-Container -Name "CONTAINERNAME"
wieder beendet werden.
Windows Server Container administrieren
Mit
Enter-PSSession -ContainerName "WPRO-C-01" -RunAsAdministrator
erlangt man remote Zugang in den zuvor gestarteten Container. Jede Container-Sandbox stellt die gleiche Verzeichnisstruktur von Windows dar, in der sich auf bekannte Art navigieren lässt. Ein Exit-PSSession schließt die Sitzung zum Container wieder.
Führt man Get-Process im Container aus, dann zeigen sich die Prozesse pro Container mit zugehöriger ID und CPU-Auslastung.
Anwendung in einem Container installieren
Mit Get-WindowsFeature im Container lassen sich die installierten Features erkennen und durch ein Install-WindowsFeature in die Sandbox installieren. Eine klassische Anwendung für eine Developer-Umgebung kann der IIS sein, welcher mit
Install-WindowsFeature Web-Server
installiert wird. Im Anschluss an diesen Beitrag gehe ich näher auf die nötige Netzwerkkonfiguration ein.
Täglich Know-how für IT-Pros mit unserem Newsletter
Marcel Küppers arbeitet seit über 25 Jahren in der IT, aktuell als Team Leader, zuvor als Consultant und Infrastructure Architect unter anderem für den japanischen Konzern JTEKT/TOYODA mit Verantwortung über die Europastandorte Krefeld und Paris.
Darüber hinaus wirkte er als Berater im EU-Projekt-Team für alle Lokationen des Konzerns mit und ist spezialisiert auf hochverfügbare virtualisierte Microsoft-Umgebungen plus Hybrid Cloud Solutions.
Zertifizierungen: MS Specialist und MCTS für Hyper-V/SCVMM, MCSE, MCITP, MCSA. Zusätzlich zertifiziert für PRINCE2 Projektmanagementmethode.
Verwandte Beiträge
- Rollen und Features in Container-Images installieren
- Update für Windows Server 2016: Reduzierter Nano Server, RDMA in VMs, Dedup für ReFS, PowerShell 6
- Neu in Windows Server: Linux-Subsystem, SMB für Container, Insider Program
- Anleitung: Windows Server Container mit Docker-Kommandos erstellen
- Windows Server 2016: Die wichtigsten Neuerungen im Überblick
2 Kommentare
Hey,
habt ihr das auch schon mal auf Basis von der finalen Server 2016 Version getestet?
Bei mir verhält sich das ziemlich merkwürdig. Ich habe Server 2016 sowohl physikalisch als auch als VM installiert, erhalte aber mit Get-command -module containers lediglich 3 Befehle für das ContainerNetwork.
Hallo Marco, genau das habe ich im Header dieses Artikels geschrieben unter Update:
Update 26.10.2016: Dieser Beitrag beschreibt die Erstellung und Verwaltung von Containern mit dem PowerShell-Modul, wie es in der TP5 noch vorhanden war. Nach Erreichen des RTM-Status hat Microsoft mehrere in diesem Artikel verwendete Cmdlets entfernt und arbeitet diesem MSDN-Beitrag zufolge an einem neuen PS-Modul für Docker-Container. Wir liefern in Kürze einen aktualisierten Text zum Einrichten von Containern unter Server 2016.