Grundlagenwissen Container Docker und andere Container unter Windows

Autor / Redakteur: Thomas Joos / Stephan Augsten

Die Container-Technologie Docker hat ihren Weg in Windows Server 2016 und die Cloud gefunden. Den Beweis, dass Container zahlreiche Vorteile für Entwickler und Unternehmen bieten, konnten sie schon unter Linux antreten.

Anbieter zum Thema

Viele Betriebssysteme haben mittlerweile Container-Technik mit an Bord.
Viele Betriebssysteme haben mittlerweile Container-Technik mit an Bord.
(Bild: Henrique Pinto - flickr.com / CC0 )

Einfach ausgedrückt handelt es sich bei Containern um kleine virtuelle Maschinen (VMs) ohne eigenes Betriebssystem. Letztlich teilen sich Container den Betriebssystem-Kernel und wichtige Systemdateien mit dem Host-System. Der Vorteil dabei liegt auf der Hand: Dadurch erspart sich ein Container-Host – also ein Server, auf dem Container zur Verfügung gestellt werden – einiges an Ressourcen.

Einstieg in Container

Auf einem Container-Host lassen sich dadurch wesentlich mehr Container mit einen Serveranwendungen betreiben, als VMs und die Ressourcen eines Container-Hosts werden besser ausgenutzt. Container sind, wie virtuelle Server auch, über das Netzwerk erreichbar und erhalten eine IP-Adresse. Aktuelle Versionen unterstützen dabei auch bereits IPv6.

Einer der führenden Anbieter für Container-Technologie ist Docker. Ursprünglich unter dem Namen dotCloud gestartet, hat das Unternehmen schnell den Namen seiner erfolgreichen Technologie übernommen. Docker nutzt auf Linux-Servern sehr stark den Linux-Kernel, zum Beispiel die Features „namespaces“ und „cgroups“. Die Technik wird dementsprechend auch in Windows Server 2016 übernommen.

Die Entwickler von Docker haben mit Microsoft zusammengearbeitet, um die Container-Technologie in Windows Server 2016 zu integrieren. Unter Windows Server 2012 R2 oder älteren Systemen ist Docker nicht lauffähig. Microsoft stellt die Container-Technologie außerdem auch für Windows 10 zur Verfügung. Das ermöglicht Administratoren und Entwicklern, Container in Windows 10 bereitzustellen und zu konfigurieren. Anschließend lassen sich die Container auf Server mit Windows Server 2016 übertragen, auch über die Cloud.

Docker-Container stehen aber nicht nur in Linux und Windows Server 2016 lokal zur Verfügung, sondern lassen sich auch in Cloud-Diensten nutzen. Microsoft Azure, Amazon Web Services (ASW) und Google Container Engine (GCE) bieten Container-Technologien, um Cloud-Anwendungen sicher bereitstellen zu können.

Für Workloads oft besser geeignet als VMs

Container müssen beim Starten also nicht erst das Betriebssystem, Ressourcen und Bibliotheken laden, sondern können direkt auf Komponenten und Daten der Betriebsumgebung zugreifen. Die Bereitstellung von Containern lässt sich außerdem wesentlich schneller durchführen als die von VMs, da keinerlei Betriebssystem installiert werden muss.

Auch Aktualisierungen, Patches oder Anpassung des Betriebssystems sind bei Containern nicht notwendig. Container bauen auf Vorlagen auf. Entwickler und Administratoren können auf Basis bereits erstellter Container schnell und einfach eigene Vorlagen (Images) erstellen, auf deren Basis wiederum Container erstellt werden können. Container sind schlussendlich gestartete Container-Images, die durch den Docker Daemon gesteuert werden. Administratoren greifen wiederum mit dem Docker-Client auf den Docker Daemon zu.

Die Erstellung von Docker-Containern lässt sich darüber hinaus automatisieren. Ähnlich zu den Antwortdateien zur automatischen Installation von Betriebssystemen gibt es mit Dockerfiles die Möglichkeit, Einstellungen eines Containers in einer Datei vorzugeben und auf deren Basis Container zu erstellen. Das ermöglicht das Skripten von Containern, inklusive der Integration in Entwicklungsumgebungen.

Es wird schnell klar, wie flexibel und skalierbar Container sind. Das ist auch der Grund, warum die Technik in Linux, aber auch für Cloud-Applikationen starke Anwendung findet. Container werden mit dem Docker-Client direkt auf dem Container-Host erstellt. Container sind allerdings keine abgespeckte VMs. Es lassen sich nicht alle Windows-Anwendungen auf Container portieren, die Anwendungen müssen eigens für Container entwickelt werden.

Container in Windows Server 2016

Microsoft und Docker haben zusammengearbeitet, um die Container-Technologie „Docker“ direkt in das Betriebssystem von Windows Server 2016 zu integrieren. Docker-Container in Windows Server 2016 unterstützen also ähnliche Funktionen wie Windows-Anwendungen. Da sich Container Teile des Betriebssystems mit dem Host teilen, gibt es generell Sicherheitsbedenken. Hier haben Microsoft und Docker die Container-Technologie mit Hyper-V verbunden.

Die Hyper-V-Container verfügen über einen eigenen Betriebssystem-Kernel, sind aber immer noch deutlich kleiner und ressourcensparender als VMs. Herkömmliche Docker-Container – in Windows Server 2016 auch Windows Server Container genannt – lassen sich mit einfachen Befehlen zu Hyper-V-Containern umwandeln. Die Steuerung erfolgt entweder über den Docker-Client in der Befehlszeile oder mit der PowerShell.

Docker Data Center – Container für das Rechenzentrum

Docker-Container sind vor allem für große Rechenzentren ideal. Allerdings benötigen Administratoren in diesem Fall eine zentrale Lösung, um alle Container in den verschiedenen Rechenzentren zu verwalten. Dazu bieten die Docker-Entwickler das Docker Datacenter.

Diese Lösung erlaubt eine zentrale Verwaltung der verschiedenen Container-Hosts und Container eines Unternehmens. Beim Docker Datacenter handelt es sich um eine Cloud-Lösung, die zum Beispiel in Microsoft Azure eingebunden werden kann. Über die Lösung lassen sich alle Docker-Container eines Unternehmens im eigenen Netzwerk oder der Cloud verwalten.

Alternativen zu Docker

Docker ist die bekannteste Container-Technologie – und die einzige, die vollständig in Windows Server 2016 eingebunden ist. Für Linux stehen aber auch Alternativen zur Verfügung. Neben LXD und systemd bieten Container-Technologie an. Allerdings ist es bei den Alternativen meistens nicht möglich, größere Rechenzentren zu betreiben oder die Container schnell und einfach zu portieren und zu synchronisieren.

Container sind kein Allheilmittel

Auch wenn Docker-Container ein durchaus interessantes Werkzeug für Unternehmen ist, um Workloads zur Verfügung zu stellen, sind nicht alle Serveranwendungen kompatibel mit Docker. Zwar lässt sich der Microsoft-Webserver IIS, aber auch andere Webserver in Containern betreiben, andere Serveranwendungen von Microsoft dagegen nicht.

Lösungen wie Exchange, SharePoint oder SQL-Server sind bislang überhaupt nicht dazu in der Lage, in Containern zu laufen. Hier müssen Unternehmen weiterhin auf herkömmliche Server setzen. Als Web- oder Clouddienst sind Container aber ideal – insbesondere, weil Unternehmen dadurch Server Workloads auf dedizierte Container verteilen können.

Fazit

Unternehmen, Entwickler und Administratoren sollten sich mit der Container-Technologie Docker auseinandersetzen. Vor allem, wenn Windows Server 2016 im Netzwerk integriert werden soll, ist es sinnvoll zu überprüfen, ob der Einsatz von Windows Server Containern auf Basis von Docker oder Hyper-V-Container sinnvoll eingesetzt werden können.

Container-Hosts lassen sich selbst virtualisieren, und parallel zu VMs lassen sich auf einem Hyper-V-Host auch Hyper-V-Container betreiben, wenn das Feature auf dem Server integriert ist. In jedem Fall lohnt es sich, einen Blick auf die Technologie zu werfen.

(ID:44433848)