Docker Container-Technologie ist eine Open-Source-Software, die dazu verwendet werden kann, Anwendungen mithilfe von Betriebssystemvirtualisierung in Containern zu isolieren. Der Clou von Docker ist die Verwendung von "stackable Dateisystemen", die es ermöglichen, Container-Images klein zu halten, beim Einsatz gleichartiger Container wiederzuverwenden und nur die Unterschiede zwischen Containern abzuspeichern.

Was bedeutet Container eigentlich?

Dies vereinfacht die Bereitstellung von Anwendungen, weil sich Container, die alle nötigen Pakete enthalten, leicht als Dateien transportieren und installieren lassen. Container gewährleisten die Trennung sowie Verwaltung der auf einem Rechner genutzten Ressourcen. Das beinhaltet laut Aussage der Entwickler: Code, Laufzeitmodul, System-Tools, Systembibliotheken - alles was auf einem Server installiert werden kann

Application Container und Docker

Container ist ein lauffähiges, virtuelles Betriebssystem und neben der grundsätzlichen Funktionalität, Container mit virtuellen Betriebssystemen zu erstellen, bietet Docker noch weitere Werkzeuge, um die Arbeit mit Containern zu vereinfachen.

Docker ist erst vor wenigen Jahren in der IT-Szene erschienen, sorgt seit dem aber beständig für Aufregung. Das Application Container-Verfahren von Docker verspricht die IT genauso umzukrempeln, wie das die Virtualisierung vor einigen Jahren bereits getan hat.

Was sind Container und wofür sind sie gut?

Container sorgen dafür, dass Software verlässlich läuft, nachdem sie von einer Umgebung in eine andere versetzt worden ist, beispielsweise vom Laptop des Entwicklers in eine Testumgebung, von der Testumgebung in die Produktion oder von einem physikalischen Computer in einem Rechenzentrum auf eine virtuelle Maschine (VM) in einer privaten oder öffentlichen Cloud. Dafür können Sie Container verwenden. Wenn sie keine Hardware anfassen wollen, dann können Sie auch Virtualisierung einsetzen.

Die ersten Probleme tauchen auf, sobald die die verschobene Software umgebenden Systeme nicht identisch sind, so Solomon Hykes, der Entwickler von Docker, "Sie haben es mit Python 2.7 getestet, danach läuft es aber in der Produktion auf Python 3, und schon passieren die wildesten Sachen. Oder Sie verlassen sich darauf, dass eine bestimmte Version einer SSL-Bibliothek installiert ist, tatsächlich aber handelt es sich um eine andere. Oder sie haben im Testbetrieb Debian eingesetzt, in der Produktion ist aber Red Hat installiert. Wieder werden wilde Sachen passieren."

Aber nicht nur die Softwareumgebung hat großen Einfluss, fügt er hinzu: "Die Netzwerktopologie mag anders sein, oder die Sicherheitsbestimmungen oder der Speicher - trotzdem muss die Software laufen."

Wie versuchen Container dieses Problem zu lösen?

Nehmen wir der als Beispiel an, dass ein Container aus einer kompletten Runtime-Umgebung besteht: aus einer Applikation inklusive aller Abhängigkeiten, Bibliotheken und andere Binär- und Konfigurationsdateien sowie Konfigurationsfunktionen und alles in ein Paket untergebracht. Durch die Containerisierung der Applikationsplattform und ihrer Anhängsel werden die Unterschiede in den diversen Betriebssystemdistributionen abstrahiert und damit ausgehebelt.

Auf den ersten Blick Virtualisierung an. Wo ist der Unterschied?

Bei der Virtualisierung besteht das Paket aus einer VM inklusive Betriebssystem und Applikation. Ein physikalischer Server würde mit drei virtuellen Maschinen aus einen Hypervisor und drei separaten Betriebssystemen bestehen.

Im Unterschied dazu läuft auf einem Server mit drei containerisierten Applikationen nur ein Betriebssystem, welches sich alle drei Container teilen.

Die von allen dreien genutzten Teile des Betriebssystems werden nur einmal gelesen und jeder Container hat dabei individuelle Zugriffsrechte auf das Betriebssystem. Dadurch sind Container sehr viel „schlanker“ als virtuelle Maschinen und benötigen deutlich weniger Ressourcen.

Welchen Unterschied macht das in der Praxis?

Ein Container mit demselben Inhalt wie der einer VM enthält erheblich weniger Bytes (Megabytes bei Container im Gegensatz zu Gigabytes bei VMs).

Folglich kann kann ein Server viel mehr Container fassen als VMs die zudem i.d.R. mehrere Minuten benötigen zu booten, Apps in Container dagegen stehen sofort zur Verfügung.

Docker unter Windows Server 2016

Microsoft und Docker haben Container-Technologie „Docker“ direkt in das Betriebssystem von Windows Server 2016 zu integriert.

Container in Windows Server 2016

Docker-Container in Windows Server 2016 unterstützen also ähnliche Funktionen wie Windows-Anwendungen. Da sich Container Teile des Betriebssystems mit dem Host teilen, 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 erheblich kleiner und ressourcenschonender 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-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.

Server Virtualisierung Microsoft Hyper-V

IMSOLUTION Value Added IT-Services - Wir realisieren und unterstützen Unternehmen beim Aufbau und der Implementierung virtueller Server IT-Infrastrukturen (VMWare und Microsoft Hyper-V-Server) und Betreuung Ihrer virtuellen-Infrastruktur im laufenden Betrieb.

 

 

Tags

Lesezeichen

FacebookMySpaceTwitterDiggGoogle BookmarksLinkedin