Jump to content

Fachinformatiker - Blog

  • Einträge
    36
  • Kommentare
    109
  • Aufrufe
    40.760

Mitwirkende

docker Windows Server Container und Docker I

Melde dich an, um diesem Inhalt zu folgen  

128 Aufrufe

Einleitung

Die grundlegende Frage gleich vornweg: Warum sollte man Docker auf einem Windows Server betreiben?

Nunja, weil man es kann. Außerdem besteht die Infrastruktur bei den meisten unserer Kunden aus MS SQL-Server und Windows Servern auf denen unsere Software installiert wird. Hier könnte man nun argumentieren, dass unsere Software "nur" PHP und Apache benötigt und das zusammen mit PostGreSQL oder ORACLE durchaus auf Linux laufen könnte. Ja, ist richtig, wir möchten aber nicht auch noch irgendwelche Linux Installationen bei unseren Kunden pflegen.

Sucht man, naiv wie man ist, einfach mal nach "docker windows", landet man früher oder später bei "Docker CE for Window". Hat man das installiert und den ersten Container gestartet, wird einem auffallen das die Container nicht beim Booten starten. Da ist auch nichts falsch konfiguriert, das soll so sein. Dafür gibt es sicherlich Gründe. Diese Version ist für Entwickler gedacht, die Docker auf ihrem Windows 10 PC betreiben wollen. Wollen wir aber gar nicht …

Installation

Also installieren wir mal das richtige

PS> Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force
PS> Install-Module -Name DockerMsftProvider -Force
PS> Install-Package -Name docker -ProviderName DockerMsftProvider -Force

Danach möchte der Server einmal neu starten und wir können mit docker version schauen ob das funktioniert hat.

PS C:\> docker version
Client:
 Version:           18.09.0
 API version:       1.39
 Go version:        go1.10.3
 Git commit:        33a45cd0a2
 Built:             unknown-buildtime
 OS/Arch:           windows/amd64
 Experimental:      false

Server:
 Engine:
  Version:          18.09.0
  API version:      1.39 (minimum version 1.24)
  Go version:       go1.10.3
  Git commit:       33a45cd0a2
  Built:            11/07/2018 00:24:12
  OS/Arch:          windows/amd64
  Experimental:     true

An der Stelle konfigurieren wir den Dienst erstmal ein wenig. Das kann man prinzipiell auch über eine json-Datei erledigen. Anleitungen dazu findet man genug. Man kann die Parameter aber auch direkt dem Dienst übergeben.

PS E:\> Stop-Service Docker
PS E:\> Remove-Service Docker
PS E:\> New-Service -Name Docker -DisplayName "Docker Engine" -StartupType Boot -BinaryPathName "C:\Program Files\Docker\dockerd.exe --run-service -H npipe:// -H 0.0.0.0:2375 --data-root=E:\docker --experimental"
PS E:\> Start-Service Docker

Für Remove-Service benötigt man allerdings PowerShell Version 6. Die gibt es zwar seit August 2018, ist dennoch nicht im Server 2019 enthalten. Nach dem Neustart des Dienstes legt Docker nun seine benötigte Verzeichnisstruktur unter E:\docker an. Und durch –experimental können wir später –plattform=linux nutzen.

Nun ist es endlich soweit, wir holen unser erstes Image. Normalerweise würde man das einfach mit

PS> docker pull microsoft/nanoserver

erledigen. Das funktioniert zwar, aber ...

Das was man dann bekommt ist ein Server 2016 SAC Image. Was per se zwar nicht verkehrt ist, aber im ersten Moment auf einem Server 2019 nicht funktioniert. Hier müsste man dem docker run noch ein --isolation=hyperv mitgeben oder man holt ein neues Image. Für Images die zum Server 2019 passen benötigt man spezifische Tags und kann sich nicht auf den Standard :latest verlassen. Images vom Nanoserver und Windows Server Core holen wir mit.

PS> docker pull mcr.microsoft.com/windows/nanoserver:1809
PS> docker pull mcr.microsoft.com/windows/servercore:ltsc2019

Anschließend verpassen wir den Images noch neue Tags

PS> docker image tag mcr.microsoft.com/windows/nanoserver:1809 nanoserver:1809

An dieser Stelle können wir auch schon mal einen Container mit einem der Images starten.

PS> docker run -it --name testdings microsoft/nanoserver powershell

Damit bekommen wir eine PowerShell Instanz in dem laufenden Container und können Dinge tun. Updates installieren, wäre eines dieser Dinge. Das erledigt man normalerweise mit sconfig auf der geöffneten PowerShell.

In den nächsten Teilen bereiten wir die Build-Umgebung vor, basteln uns ein Dockerfile und bewundern das Ergebnis ;)

Melde dich an, um diesem Inhalt zu folgen  


0 Kommentare


Empfohlene Kommentare

Keine Kommentare vorhanden

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
  • Blogkommentare

    • Einfach zu lesen und zu verstehen, hat mir geholfen, danke
    • Das Beispiel bei Raid 5, in dem du die Rechnung als Beispiel erstellst, finde ich etwas unglücklich. Ich würde mich hier eher mit den 0 und 1 und der errechnung der geraden / ungeraden Ergebnisbits entscheiden. Auch sind es nicht oft 5 Festplatten bei einem Raid 5. Eher mehr. Zu Raid 5 und 6, es gilt eigentlich, dass man die Paritybits auch wahllos verteilen kann. Es muss keine dedizierte Platte sein. Das zweite Paritybit kann auch diagonal gestripes über ein Array verteilt werden. Siehe NetApp   Viele Grüße   z.B. Jens Mander
    • 1. Bild ist raus. Zum Rest: Empfinde ich als nicht wichtig genug für einen Blog der die Grundlagen vermitteln soll.  
    • Erstens: Copyright ist dir unbekannt? Auch für einen Blogbeitrag darf man nicht einfach ein Bild aus dem Internet verwenden. Zweitens: der von dir verlinkte Controller dürfte nicht viel schneller sein als ein Software-Raid. Mehr dazu unter Punkt 4. Drittens: Ein echtes Hardware Raid gewinnt seine Leistung unter anderem auch dadurch, dass der Controller einen eigenen Cache besitzt. Warum schreibst du nichts darüber? Was ist mit einem BBU und warum sollte dieses Bauteil zwingend bei einem Raid dabei sein? Viertens: der von dir im Bild gezeigte Controller ist ein einfacher SATA-Controller aus alten Tagen (es ist ein PCI-X Controller, das war mal state of the art als ich zum ersten Mal intensiver mit IT in Verbindung kam), der ein RAID nur über die Treiber für die Karte erstellen kann, es also effektiv ein Controller für ein SOFTWARE-RAID ist. Siehe hier: https://www.semiconductorstore.com/cart/pc/viewPrd.asp?idproduct=42868
    • Ich kann die Infos nochmal raussuchen aber eigentlich ist es klar. bei RAID 6 werden 2 verschiedene Prüfsummen gebildet P und Q die auf die Platten verteilt werden. Unabhängig davon ob Q nun komplexer zu ermitteln ist als P braucht das mehr Rechenzeit. Das passiert zwar aufm Controller aber der kann auch nur n Operationen pro Sekunde. ob es belastbare Benchmarks gibt weiß ich nicht. Das gleiche gilt in ähnlicher Form fürs Rebuild und damit auch für den Betrieb im "degraded" Zustand. Je mehr Festplatten um so mehr Operationen pro Prüfsumme müssen durchgeführt werden. Auch ein XOR braucht Zeit, auch wenn es wenig ist.
    • 1. Danke, ich habe eine Zeile hinzugefügt die darauf hinweist das es noch mehr RAIDs gibt. 2. Ich hab ein wenig gesucht, aber zu dieser Aussage konnte ich leider auf die Schnelle keine Informationen finden, könntest du mir sagen wo du diese Info her hast? 3. Das die Performance während eines Ausfalls sinkt hatte ich unter RAID 5 erwähnt. Unter RAID 0 ist auch nochmal erwähnt dass bei mehr Festplatten die Ausfallrate höher ist. Beides könnte man natürlich in einen allgemeineren Bereich nehmen, das ist wahr. Was mehrere Platten in RAID 5/6 betrifft und das bei mehr Platten die Zeit für den Rebuild steigt konnte ich leider auch nicht verifizieren - nur das die Zeit mit der Größe der Platte logischerweise steigt (1TB hat eine kürzere Rebuild-Zeit als eine 2TB-Platte).
    • Mir fehlen hier noch typische Einsatzgebiete der jeweiligen RAID-Level, ein Verweis auf exotischere RAIDs. Es klingt auch ein wenig so als wäre RAID 6 ne total tolle Idee, allerdings erkauft man die Datensicherheit mit Performanceeinbußen gegenüber anderen Varianten. Es ist auch keine gute Idee viele Festplatten in ein RAID 5 oder 6 zu stopfen. Zum einen steigt die Wahrscheinlichkeit das mehrere Festplatten ausfallen und zum anderen steigt die Zeit für den Rebuild und die Performance sinkt während des Ausfalls.
    • Zu diesem Thema habe ich mit Patrick in einem fast zweistündigen Interview gesprochen. Wer mehr über die Arbeit eines UX-Experten erfahren möchte, kann gerne reinhören: Patrick Ziegler über User Experience (UX) und Usability. Und über Feedback freuen wir uns natürlich auch sehr!
    • https://www.ebay-kleinanzeigen.de/s-anzeige/halo-suche-jop-in-ein-anwalz-kanslei/716905036-105-4268
    • Ist doch ein Fake oder? https://www.ebay-kleinanzeigen.de/s-anzeige/ferkaufe-fiat-multipler-guter-zu-schtant/716565560-216-4268
       
  • Blogstatistik

    • Blogs insgesamt
      1
    • Einträge insgesamt
      32

Fachinformatiker.de, 2018 SE Internet Services

fidelogo_small.png

if_icon-6-mail-envelope-closed_314900.pnSchicken Sie uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App


Get it on Google Play

Kontakt

Hier werben?
Oder senden Sie eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×

Wichtige Information

Fachinformatiker.de verwendet Cookies. Mehr dazu in unserer Datenschutzerklärung