Container mit der Powershell verwalten: Teil 2
30. November 2016Die Virtualisierungs-Technologie brachte in den IT-Abteilungen viel Raum für Verbesserungen: Frische Konzepte, Kosteneinsparungen und eine einfachere Verwaltung der einzelnen (virtuellen) Maschinen. Somit können Server besser ausgelastet, und dadurch Energie- und Investitionskosten eingespart werden. Dies ermöglichte unter anderen auch aktuelle Strukturen, bei denen externe Dienstleister die benötigten IT-Ressourcen gegen Entgelt bereitstellen. Diese Vorteile, in Zusammenhang mit einem stetig steigenden Vernetzungsgrad, stellt einen der Grundpfeiler von aktuellen Cloud-Strukturen dar. Zunächst waren hier die Ressourcen samt den zugehörigen Gast-Betriebssystemen in VMs (virtuellen Maschinen) „untergebracht“. Mit Containern wird dies nochmals abgeändert, hier können sogar einzelne Applikationen separat erstellt, gestartet und bereitgestellt werden.
Im ersten Teil dieser Beitragsreihe installierten die Systembetreuer zunächst die entsprechenden Systemvoraussetzungen für den „Docker-Einsatz“. Hierbei setzt das Team von NT4ADMINS auf eine aktuelle Version von Windows Server 2016 Datacenter, fügten die Hyper-V-Rolle sowie das Container-Feature hinzu. Im Anschluss daran wurde das Docker-Modul mit Hilfe der Powershell installiert. In diesem Teil der Beitragsreihe zeigt das LAB-Team von NT4ADMINS die „Basics“ im Umgang mit Docker anhand entsprechender Powershell-Cmdlets. Als nächsten Schritt prüfen die Systembetreuer mit dem entsprechenden Cmdlet, ob der Docker-Dienst korrekt ausgeführt wird. Hierzu eignet sich folgender Befehl (Bild 2):
Get-Service Docker
Auch sollten die Administratoren von Zeit zu Zeit die Version von Docker anzeigen lassen, und gegebenenfalls die aktuelle Version beziehen. Zur Ermittlung der aktuell installierten Docker-Version können die IT-Betreuer auf folgendes Cmdlet setzen:
Docker Version
Hier lassen sich sowohl die Client- als auch die Server-Variante anzeigen, und die entsprechenden Detailinformationen auslesen (Bild 3). Im Anschluss können Um nun sogenannte Docker-Abbilder (Images) zu beziehen, können die Administratoren den Befehl „pull“ nutzen. Dabei ist die Angabe eines Repositories und des Images nötig. Im Hintergrund wird dabei der Docker Hub angesprochen, und die Images von dieser offiziellen Abbild-Sammlung bezogen.
Um „nur“ ein offizielles Image herunterzuladen, wird dabei allerdings kein vorhandener Benutzer-Account bei „Docker Hub“ vorausgesetzt. Um allerdings selbst Images bereitzustellen. Um allerdings vollen Umfang dieser Plattform zu nutzen, sollten sich alle Docker-Interessierten einen entsprechenden Benutzer-Account anlegen.Um nun ein Docker-Images herunterzuladen, könnten die Systembetreuer etwa folgendes Cmdlet einsetzen (Bild 4):
Docker pull Microsoft/windowsservercore
Dabei verbindet sich die Docker-Engine mit dem entsprechenden Repository, und lädt das Image (hier ein Abbild von Windows Server 2016 Core). Im Anschluss daran könnten die Systembetreuer das eben bezogene Image als „Container“ starten:
Docker run microsoft/windowsservercore –h cSRV1-2016-Core
Dabei ist zu beachten, dass Docker noch nicht mitgeteilt wurde, welche Anwendung oder welcher Dienst in dem betreffenden Container ausgeführt werden soll. Ohne diese Angabe startet der Container kurz an, und wird (mangels einer zu erledigenden Aufgabe) kurze Zeit später automatisch abgeschaltet.
Zusammenfassung
Zusätzliche Informationen finden die Administratoren auf den entsprechenden Hilfeseiten von Microsoft sowie der Docker-Community. Eine Auflistung der einzelnen Docker-Cmdlets, sowie deren Parameter lässt sich wie immer direkt in der Powershell aufrufen (Parameter: -help). Um Windows-Administratoren ohne Linux-Kenntnisse das Leben zu erleichtern, wurden für bestimmte Parameter entsprechende Aliase implementiert. So lassen sich etwa mit „-m“ die Hauptspeicher-Begrenzung setzen (statt –memory string), oder wie bereits gezeigt mit „-h“ der Hostname des Containers festlegen (anstatt –hostname string). Im dritten Teil der Beitragsreihe werden die Systembetreuer Programme innerhalb der Container ausführen, Anwendungen starten sowie Images abändern und für die weitere Verwendung abspeichern.