Laden...

Erfahrungsberichte zu MSSQL in Docker-Container auf Windows Server 2016?

Erstellt von emuuu vor 4 Jahren Letzter Beitrag vor 4 Jahren 1.271 Views
emuuu Themenstarter:in
286 Beiträge seit 2011
vor 4 Jahren
Erfahrungsberichte zu MSSQL in Docker-Container auf Windows Server 2016?

Guten Tag zusammen,

ich pack das Ganze mal in Smalltalk, weil es in die andren Themen nicht so richtig passt und ich eigentlich nach euren Erfahrungen in dem Bereich Fragen wollte.

Der Grundgedanke ist: Ich habe einen MSSQL-Server, dieser soll auf einer anderen Maschine in einen Docker-Container umziehen.

Auf der anderen Maschine läuft Windows Server 2016 (1607).

Mein Problem nun: MSSQL Docker wird nur in der Linux-Variante für Production unterstützt (was ich generell seltsam finde, da ja MS-Produkt)
Hierbei habe ich nun die Einschränkung, dass (meiner bisherigen Recherche nach) Windows Server 2016 LCOW (Linux Containers on Windows) nur im Semi-Annual-Channel (also ab 1709) anbietet. Auf diesen habe ich mit der Single-Lizenz für den bestehenden Server keinen Zugriff.

Was mich daran besonders stört: Ich könnte mir einfach eine aktuelle Win10-Version holen und hätte dann eine Unterstützung für Linux-Container.
Übersehe ich was oder ist LCOW tatsächlich immer noch nicht verfügbar mit Win Server 2016 LTSC?

Um wenigstens etwas zu testen arbeite ich aktuell mit der Windows-Version des MSSQL-Images. Hierbei kann ich zwar via json verschiedene Datenbanken einbinden, jedoch wird die Server-Struktur (z.B. Anmeldungen) bei jedem Neuerstellen des Containers neu generiert.
Dementsprechend müssen die Anmeldungen jedes mal neu hinterlegt werden. Und immer mit iwelchen Scripts oder MSSQL Studio rumzufuchteln, wenn man den Container woanders erneut aufsetzen will, entspricht nicht gerade meiner Vorstellung von Portabilität.

Hinzu kommt, dass z.B. IdentityServer4 seine eigene Datenbank im Container-Server nicht wiedererkennt und stattdessen eine neue anlegen will (was am bereits existierenden DB-Namen scheitert).

Habt ihr vllt schon mal ein ähmliches Szenario durchgespielt und entsprechende Erfahrungen in dem Bereich?

Beste Grüße
emuuu

Ps: Stattdessen einfach einen Linux-Host zu verwenden ist in dem Anwendungsfall leider keine Option.

2+2=5( (für extrem große Werte von 2)

16.806 Beiträge seit 2008
vor 4 Jahren

was ich generell seltsam finde, da ja MS-Produkt

Äpfel und Birnen und so...
Das liegt daran, dass Docker an für sich eine Linux-Technologie ist und Docker unter Windows noch etwas in den Kunderschuhen steckt.

Darüber hinaus arbeiten die Teams bei Microsoft autonom: nur weil es Windows ist heisst es nicht, dass das Nummer 1 ist.
Die Teams machen das, was ihre Zielgruppe am meisten verlangt.

Was mich daran besonders stört: Ich könnte mir einfach eine aktuelle Win10-Version holen und hätte dann eine Unterstützung für Linux-Container.

Nein, hast Du nicht.
Windows 10 - also Client - kann keine Docker Container ohne aktive User Shell ausführen.

Übersehe ich was oder ist LCOW tatsächlich immer noch nicht verfügbar mit Win Server 2016 LTSC?

Unter 2016 war das ganze eher alles Preview für die ungeduligen.
Wirkliche Unterstützung bekommst erst mit 2019.

Unter Windows hast Du zusätzlich noch das Kernelthema.
Die Container sind nicht abwärtskompatibel; sondern entweder equal oder newer.

--
Ich persönlich verwende wann immer möglich Linux Container, auch für MSSQL auf lokaler Entwicklermaschine (Run MSSQL on Docker for Windows).

Im produktiven Betrieb sieht es so aus, dass es für Datenbanken immer noch keine generelle Empfehlung gibt, diese in Docker Containern auszuführen.
Im Gegenteil: an für sich wird gewarnt davor.
Das liegt daran, dass Orchestators wie Kubernetes und Docker Swam die Volumes noch nicht so wirklich super handlen.
Daher verwenden zumindest wir in produktiven Umgebungen wann immer möglich Managed Databases.

Anders sieht es so aus, wenn Du nur eine Single Instance für eine Datenbank hast.
Da ist das mit den Volumes weniger dramatisch; hast aber andere Probleme wie Skalierung, Updates, Fallbacks und Co.

In einem Projekt (On Prem) verwenden wir Windows Server 2019 Systeme basierend auf Dell Industrie PCs in Docker.
Funktioniert soweit ganz gut.

emuuu Themenstarter:in
286 Beiträge seit 2011
vor 4 Jahren

Nein, hast Du nicht.
Windows 10 - also Client - kann keine Docker Container ohne aktive User Shell ausführen.

Ja stimmt, meinte mit Docker for Windows habe ich dann ne Unterstützung für Linux- und Windows-Container parallel.

Anders sieht es so aus, wenn Du nur eine Single Instance für eine Datenbank hast.
Da ist das mit den Volumes weniger dramatisch; hast aber andere Probleme wie Skalierung, Updates, Fallbacks und Co.

Das wäre schon mein Anwendungsfall jedoch war der Gedanke ein bestehendes (kleines) System möglichst wartungsarm zu halten. Sprich ich habe einen Server auf dem ein SQL-, ein IdentityServer-, ein Api-, ein WebApp-Container und ein Reverse-Proxy-Container laufen.

Aber danke für den Hinweis, mal sehen bei welcher Lösung ich dann am Ende lande.

2+2=5( (für extrem große Werte von 2)

16.806 Beiträge seit 2008
vor 4 Jahren

Ja stimmt, meinte mit Docker for Windows habe ich dann ne Unterstützung für Linux- und Windows-Container parallel.

Auch erst seit dem letzten Windows Fall Update dank WSL 2.

emuuu Themenstarter:in
286 Beiträge seit 2011
vor 4 Jahren

Auch erst seit dem letzten Windows Fall Update dank WSL 2.

Stimmt, ist in Docker for Windows auch noch als experimentelles Feature versteckt, funktioniert für mich bisher aber ohne merkbare Einschränkungen

2+2=5( (für extrem große Werte von 2)