Grundlagen Container
Unter Unix/Linux hat sich unter dem Projekt Docker seit einigen Jahren eine Open-Source-Container-Lösung entwickelt, die im Vergleich zu virtuellen Maschinen einige Vorteile bietet.
Auch Microsoft liefert mit Windows 10* und Windows Server 2016 erstmals eine auf Docker basierende Containerimplementierung. Ein Docker-Image ist eine portable Abbildung eines Containers. Es werden diverse Images zum Download im Internet angeboten.
Ein Container ist ein lauffähiges, „virtuelles“ Betriebssystem auf dem die gewünschten Anwendungen lauffähig, mit allen dazu benötigten Bibliotheken und sonstigen Ressourcen installiert sind. In einem Container kommen abgespeckte Versionen eines Betriebssystems zur Ausführung (bei Windows z.B. Core oder Nano, geplant Pico), die im Vergleich zu virtuellen Maschinen.
Ressourcen schonend, hocheffizient und mit optimaler Performance ausgeführt werden. Das folgende Diagramm stellt die Architektur von virtuellen Maschinen und Containern gegenüber:

Diese Technologie bietet einen verbesserten Schutz gegenüber Anwendungen, die auf einem Serverbetriebssystem gleichzeitig installiert sind, weil Container keinen direkten Zugriff auf die Ressourcen eines anderen Containers haben. Unter Windows Server erfolgt die Container-Administration weitgehend mit Powershell Befehlen.

Arten von Containern unter Windows
Windows Server Container
Die Container werden auf dem physikalischen Host ausgeführt. Alle Container, die auf diesem Host laufen, teilen sich den Kernel mit dem Host. Daher hat der Container prinzipiell auf dieser Ebenen Berührungspunkte.
Hyper-V Container
Container werden auf einer virtuellen Maschine ausgeführt. Hier wird der Kernel nicht gemeinsam genutzt. Aus diesem Grund haben die Container einen wesentliche höheren Isorlationsgrad gegenüber dem Host oder auch den anderen Containern.
Installation von Docker

Für die Installation von „Containers“ gibt es grundsätzlich zwei Möglichkeiten. Entweder man verwendet den Server Manager und installiert das Feature „Container“, oder man verwendet die Windows PowerShell.
Install-Windowsfeature Containers
Restart-Computer
Nach der Installation wird die Open-Source Software Docker benötigt. Auch diese lässt sich am einfachsten über die Windows PowerShell installieren. Natürlich benötigt man die PowerShell wieder mit administrativen Rechten. Beim Repositroy PSGallery muss „Alles“ ausgewählt werden.
Install-Module –Name DockerMsftProvider –Repository PSGallery –Force
Install-Package –Name docker –ProviderName DockerMsftProvider
Restart-Computer -Force
Jetzt kann ein Containerbetriebssystem installiert werden. Im folgende installiert man den Container: nanoserver.
docker pull microsoft/nanoserver
Die folgende Tabelle enthält einen Überblick über wichtige Befehle für Docker. Diese können in der cmd ausgeführt werden. Meine Erfahrung mit docker zeigte, dass nicht alle Befehle auch in der Windows Powershell funktionieren.
| Befehl | Beschreibung |
|---|---|
| docker version | Installierte Docker Version anzeigen |
| docker | Alle möglichen Docker Befehle anzeigen |
| docker images | Vorhandende Images |
| docker ps –a | Vorhanden Container mit Status |
| docker run -it microsoft/nanoserver cmd | Docker Container mit der cmd starten |
| docker exec –help | Befehl im Docker Container ausführen |
| docker stop | Container beenden |
| docker commit [container-name] MeinNanoServer:latest | Container mit neuen Namen Speichern |
Wenn man wie oben ein Docker Image startet und darin die cmd ausführt, kann man mit diesem „virtuellen Betriebssystem“ ganz normal arbeiten. Der folgende Screenshot zeigt die geöffnete Cmd im Container. Mit dem Befehl „hostname“ wird dabei der Name angezeigt.

Fazit
Docker ist eine sehr interessante Möglichkeit, um virtuelle Maschinen mit speziellen Anwendungen bereitzustellen. Prinzipiell läuft die Installation und das Bereitstellen von Images relativ schnell und einfach ab. Allerdings denke, ich wird sich hier in den nächsten Jahren noch viel bewegen. Übrigens, auch unter Windows 10 kann man Docker installieren.










Danke für diesen sehr informativen Artikel.
Lg
P