gjp311 - stock.adobe.com
Microsoft SQL Server als Container betreiben
Microsoft stellt seinen SQL Server auch als Container-Image zur Verfügung, der dann in einer Containerumgebung auf Basis von Docker läuft. Wir geben einen Überblick und Tipps.
Die Bereitstellung von Microsoft SQL Server 2016/2017/2019 kann auch über ein Container-Image erfolgen. Das ermöglicht eine schnelle Installation in lokalen Rechenzentren, aber auch in der Cloud.
SQL Server 2019 kann auch mit Windows Server 2019 als Container bereitgestellt werden. Das ist eine ideale Grundlage, da hier Docker und Kubernetes gemeinsam genutzt werden können. Beide Systeme sind die von Microsoft empfohlene Lösungen, um SQL Server 2019 als Container zu betreiben. Auf diesem Weg können Always-On-Gruppen auch in Containern auf Basis von Docker betrieben und mit Kubernetes verwaltet werden. Als Container-Hosts kann in diesem Fall auch Windows Server 2019 eingesetzt werden.
Sobald ein Container mit Microsoft SQL Server bereitgestellt ist, kann auf den Containern auch von außerhalb des Netzwerkes zugegriffen werden. Hier unterstützt Microsoft SQL Server in der Container-Bereitstellung im Grunde genommen alle Tools und Programme, die SQL-Verbindungen ermöglichen. Dazu gehören grafische Verwaltungs-Tools und Programme genauso, wie Shell-Befehle in Windows, Linux und macOS. Auch die Entwicklungsumgebung Visual Studio Code von Microsoft unterstützt die Verbindung zu Microsoft SQL-Server in der Containerinstallation.
Der Vorteil beim Betrieb von Microsoft SQL Server in einer Containerumgebung besteht auch darin, dass auf Hosts eine größere Anzahl an SQL-Containern betrieben werden kann. Das ermöglicht Hochverfügbarkeitsszenarien mit Always-On-Gruppen und Anwendungen können ihre eigene Datenbank auf einem dedizierten SQL-Container speichern, anstatt auf einem zentral betriebenen SQL Server. Entwickler können mit der Bereitstellung einer Anwendung auch gleich den dazu passenden SQL Server als Container bereitstellen und zwar mit der Konfiguration, welche die spezifische Anwendung benötigt.
Big-Data-Cluster mit Containern auf Basis von SQL Server 2019
Interessant wird das mit SQL Server 2019, da hier wesentlich enger Big-Data-Lösungen wie Hadoop unterstützt werden. Es lassen sich also Big-Data-Cluster erstellen, die Container mit SQL Server 2019 nutzen. Da hier auch Kubernetes unterstützt wird, und Kubernetes wiederum mit Windows Server 2019 zusammenarbeitet, ist es in Microsoft-Umgebungen sinnvoll, SQL Server 2019 als Container auf Servern mit Windows Server 2019 bereitzustellen.
Auch Testumgebungen können auf Basis von Containern schneller erstellt werden, auch auf Rechnern mit Windows 10. Entwickler können dadurch eigene Datenbankserver auf ihrer Arbeitsstation nutzen, die schnell und einfach als Container installiert werden. Interessant ist das zum Beispiel, wenn Vorabversionen getestet werden sollen, zum Beispiel SQL Server 2019.
Microsoft SQL Server als Linux-Installation in Containern betreiben
Basis der Bereitstellung ist die Möglichkeit, Microsoft SQL Server auch auf einem Linux-System zu installieren. Diese Basis wird zum Deployment als Container genutzt. Das Image wird also generell als Linux-Variante in Docker genutzt. Daher kann der Container mit dem Linux-basierten Microsoft SQL Server nicht nur in Windows und Linux genutzt werden, sondern auch in macOS. Alle Systeme, auf denen sich Docker-Container betreiben lassen, können Microsoft SQL Server auch als Container installieren.
Natürlich kann Microsoft SQL Server auch als Container auf Computern mit Windows Server 2016/2019 und Windows 10 betrieben werden. Dazu muss der Server oder die Arbeitsstation für die Verwendung von Containern konfiguriert und die Containertechnologie installiert sein.
SQL Server als Container-Image herunterladen und bereitstellen
Microsoft stellt die Images für die Bereitstellung von SQL-Servern unter Docker im Docker-Hub zur Verfügung.
Hier ist das Image für SQL Server 2017 und ein Image für Microsoft SQL Server 2019 verfügbar.
Für den Download wird folgender Befehl verwendet:
docker pull mcr.microsoft.com/mssql/server
Um das aktuelle Container-Image für Microsoft SQL Server 2017 herunterzuladen, wird der folgende Befehl genutzt:
docker pull mcr.microsoft.com/mssql/server:2017-latest-ubuntu
Um SQL Server 2019 herunterzuladen, wird aktuell folgender Befehl genutzt, allerdings wird sich dieser ändern, sobald aktuellere Versionen zur Verfügung stehen:
docker pull mcr.microsoft.com/mssql/server:2019-CTP3.0-ubuntu
Sobald das Image zur Verfügung steht, können neue Container für die Bereitstellung von SQL Server 2017 erstellt werden, welche die heruntergeladenen Images nutzen. Der Befehl dazu lautet:
docker run -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=<Kennwort>' -p 1433:1433 -d mcr.microsoft.com/mssql/server:2017-latest
Sollen mehrere Container auf Basis eines Images bereitgestellt werden, kann über die Option -p jeweils ein eigener Port definiert werden. Beispiel:
Docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<YourStrong!Passw0rd>" -p 1401:1433 -d mcr.microsoft.com/mssql/server:2017-latest
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<YourStrong!Passw0rd>" -p 1402:1433 -d mcr.microsoft.com/mssql/server:2017-latest
Das Container-Image steht auch in der Microsoft Container Registry (MCR) zur Verfügung. Auch hier kann das Image heruntergeladen werden, auch von Linux-Servern aus:
sudo docker pull mcr.microsoft.com/mssql/server:2017-latest
Sobald der Container erstellt wurde, kann auf ihn zugegriffen werden, wie auf einen herkömmlichen SQL-Server auch. Die Bereitstellung des Docker-Containers kann mit Standardbefehlen überprüft werden, zum Beispiel mit:
docker ps -a