Sichere und effiziente Server-Workloads

Microservices und Co. mithilfe von Containern in Windows Server 2016

| Autor / Redakteur: Thomas Joos / Ulrike Ostler

Windows Server 2016 ist mit Docker-Container-Technologie ausgestattet.
Windows Server 2016 ist mit Docker-Container-Technologie ausgestattet. (Bild: Docker/Vogel IT-Medien GmbH)

Mit der „Docker“-Container-Technologie in „Windows Server 2016“ bietet Microsoft, zusammen mit der neuen „Nano“-Server-Installation, eine effiziente Möglichkeit Server-Workloads effizient und sicher zur Verfügung zu stellen. Thomas Joos verrät, wie.

Neben Nano-Servern gehören „Windows Server Container“, als Docker-Implementation, zu den wichtigsten Neuerungen in Windows Server 2016. Windows Server Container können auch auf Nano-Servern laufen und Nano-Server wiederum als Cluster, so dass auch Container hochverfügbar betrieben werden können - auch in virtuellen Umgebungen und auch mit virtuellen Clustern. Die Windows Server Container sowie deren Erweiterung „Hyper-V-Container“ basieren auf der Plattform Docker.

Das Betriebssystem in Docker-Containern und die notwendigen Ressourcen, sind auf dem Container-Host zusammengefasst. Startet ein Container, muss er nicht das ganze Betriebssystem booten, Bibliotheken laden und Ressourcen für das eigene Betriebssystem zur Verfügung stellen. Container nutzen Teile des Betriebssystems auf dem Container-Host.

Als Container-Host für Docker-Container kann auch der neue Nano-Server in Windows Server 2016 genutzt werden.
Als Container-Host für Docker-Container kann auch der neue Nano-Server in Windows Server 2016 genutzt werden. (Bild: Microsoft/ Thomas Joos)

Server-Dienste mit Containern auf Nano-Servern betreiben

Windows Server Container ermöglichen den Betrieb von Cloud-Anwendungen oder Web-Diensten in einer sicheren und einfach zu erstellenden Umgebung. Alles, was Unternehmen benötigen, ist ein Container-Host auf Basis von Windows Server 2016. Dabei kann es sich um einen physischen Server handeln, eine VM oder einen virtuellen Computer in „Microsoft Azure“. Beim Container-Host kann es sich um eine herkömmliche Installation von Windows Server 2016 handeln, aber auch um einen Core-Server sowie einen Nano-Server.

Innerhalb von VMs kann in Windows Server 2016 Hyper-V installiert werden. Sinnvoll ist das zum Beispiel für Hyper-V-Container auf Nano-Servern.
Innerhalb von VMs kann in Windows Server 2016 Hyper-V installiert werden. Sinnvoll ist das zum Beispiel für Hyper-V-Container auf Nano-Servern. (Bild: Microsoft/Thomas Joos)

Die Verwaltung findet vor allem über die Powershell oder Befehlszeile statt. Auch die Container werden mit der Befehlszeile oder der Powershell verwaltet. Wollen Unternehmen auf dem Nano-Server auch Hyper-V-Container nutzen, müssen sie in diesem Fall die eingebettete Virtualisierung aktivieren. Diese Funktion ist neu in Windows Server 2016 und ermöglicht den Betrieb von Hyper-V innerhalb einer VM.

Installieren von Docker auf Nano-Servern

Auch auf Nano-Servern muss Docker installiert werden, um Windows Server Container zu nutzen. Dazu wird nach der Installation der neusten Updates mit einer Remote-Powershell-Sitzung Docker auf dem Server installiert. Dazu werden folgenden Befehle genutzt:

Install-Module -Name DockerMsftProvider -Repository PSGallery -Force

Install-Package -Name docker -ProviderName DockerMsftProvider

Nach der Installation muss der Server neu gestartet werden. Um ein Container-Image auf Nano-Servern zu installieren wird folgender Befehl verwendet:

docker pull microsoft/nanoserver

Sollen auch Hyper-V-Container verwendet werden, muss Hyper-V auf dem Nano-Server installiert sein. Anschließend kann auch das Container-Image für Core-Server auf den Nano-Server heruntergeladen werden:

docker pull microsoft/windowsservercore

Das Core-Image für Container auf Basis von Windows Server 2016 ist auf Nano-Servern nur für Hyper-V-Container verfügbar. Mit dem Befehl

Install-Module posh-docker

wird noch die Vervollständigungs-Automatik für den Docker-Client auf einem Container-Host installiert. Nach der Installation kann mit der Tabulator-Taste durch die Befehle und Optionen des Docker-Clients durchgeschaltet werden. In der Powershell wird dazu das Modul mit Import-Module posh-docker importiert.

Container für die schnelle Bereitstellung von Server-Diensten nutze

Docker ermöglicht auch die lokale Verwaltung der Server-Rollen. Erstellen Administratoren zum Beispiel mit dem folgenden Befehl einen neuen Container und wechseln durch die Option -it gleich in die Befehlszeile, können sie innerhalb des Containers die Powershell starten und Installationen vornehmen:

docker run -it --name winiis -p 80:80 microsoft/windowsservercore

Sobald sich die Befehlszeile des Containers öffnet, kann mit dem Befehl „powershell“ auf dem Container eine lokale Powershell-Sitzung geöffnet werden. Anschließend lässt sich beispielsweise überprüfen, ob der IIS auf dem Container installiert ist. Hier wird der gleiche Befehl verwendet, wie bei herkömmlichen Servern mit Windows Server 2016:

Get-WindowsFeature web-server

Um den IIS zu installieren, wird wiederum der folgende Befehl verwendet:

Install-windowsfeature web-server

Darüber hinaus lassen sich auch eigene Images erstellen und bearbeiten, zum Beispiel auf Basis bestehender Container, die wiederum mit docker ps -a angezeigt werden:

docker commit <ID> <Ordner>/meincontainerimage

Beispiel:

docker commit 662f25d6d835 windowsiis/joosimageiis

Docker-Files für eigene Images erstellen

Auf Basis eines Images lassen sich weitere Container erstellen. Der Vorgang lässt sich auch automatisieren, in dem „Docker-Fles“ verwendet werden. Dabei handelt es sich um eine Anweisungsdatei für die Erstellung von neuen Containern.

In der Datei kann zum Beispiel festgelegt werden, dass ein neues Image erstellt werden soll, welches den „IIS“ als Basis nutzt. Auch die Konfiguration dazu lässt sich im Docker-File festlegen.

Generell wird in Docker-Files festgelegt, auf welcher Basis der neue Container erstellt werden soll. Außerdem steuert das Docker-File, was im neuen Container-Image für Aufgaben vorgenommen werden sollen. So kann zum Beispiel automatisch der IIS auf dem Container gestartet werden:

RUN dism.exe /online /enable-feature /all /featurename:iis-webserver /NoRestart

Über ein Docker-File lassen sich auch Powershell-Skripte in ein Container-Image kopieren und ausführen. Für das Hochladen von Container-Images wird der Befehl docker push verwendet:

docker push <Benutzername>/iis-dockerfile

Nach dem Upload kann mit docker pull das Image auf Container-Hosts heruntergeladen werden. Wollen Administratoren das Image nicht mehr verwenden, können sie es löschen:

docker rmi <Benutzername>/iis-dockerfile

Hyper-V-Container

Windows Server Container teilen sich wichtige Bereiche des Betriebssystems mit dem Host und anderen Containern. Das erhöht zwar die Effizienz der Container, im Vergleich zu virtuellen Servern, bietet aber auch mögliche Angriffsflächen. Grundsätzlich ist es möglich, dass ein Container andere Docker-Container auf dem Host beeinträchtigt oder angegriffen wird.

Der Nachteil von Hyper-V-Containern ist eine etwas schlechtere Leistung im Vergleich zu Windows Server Container. Der Vorteil liegt in der besseren Isolierung der Container.

Was meinen Sie zu diesem Thema?

Schreiben Sie uns hier Ihre Meinung ...
(nicht registrierter User)

Kommentar abschicken
copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Infos finden Sie unter www.mycontentfactory.de (ID: 44668029 / Middleware)