In diesem Artikel geht es um den neuen Microsoft SQL Server 2017 Linux für Docker.

Natürlich kann man auch MS SQL 2017 direkt unter Ubuntu installieren. Microsoft stellt dafür die Pakete und Docker Images auf dem Docker HUB bereit.

Als minimale Vorraussetzung wird auf der Festplatten rund 4GB Speicherplatz und 4GB RAM benötigt. Eine laufende Docker Installation setzten wir vorraus.

In den allgemeinen Docker Image von Microsoft sind unterschiedliche SQL Editionen verein. Über einen Docker Parameter wird die jeweilige Edition gesetzt.

SQL Developer edition -> MSSQL_PID=Express
SQL Express edition -> MSSQL_PID=Developer

Mit „docker pull“ starten wir den Download von dem Microsoft SQL Server 2017 vom Docker Hub. Im Anschluss erzeugen wir mit „docker run“ eine laufende SQL Express Instanz am Netzwerkport 1433. Unsere Datenbank soll nicht im Docker Container gespeichert werden, sondern im Verzeichnis /my/data/. Das erleichter spätere Updates vom Container. Das Kennword für den Benutzer „SA“ kann natürlich individuell gestalltet werden.

sudo docker pull microsoft/mssql-server-linux
sudo docker run --name mssql1 -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=KennW@rt1' -e 'MSSQL_PID=Express' -p 1433:1433 -v /my/data:/var/opt/mssql/data -d microsoft/mssql-server-linux:2017-latest
sudo docker ps -a

Damit ist die Installation schon abgeschlossen. Jetzt können wir uns per Kommandozeile auf die Datenbank verbinden.

sudo docker exec -it mssql1 /opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P 'KennW@rt1'

Als Beispiel erzeugen wir die Datenbank „TestDB“ mit der Tabelle „Inventory“ und zwei Datensätzen. Per SQL Kommando kann man auch das Kennwort von Benutzer „SA“ ändern.

CREATE DATABASE TestDB
GO
USE TestDB
CREATE TABLE Inventory(ID INT, Name NVARCHAR(50), Quantity INT)
GO
INSERT INTO Inventory VALUES (1, 'banana', 25);
INSERT INTO Inventory VALUES (2, 'orange', 14);
SELECT * FROM Inventory WHERE quantity > 15;
GO
ALTER LOGIN SA WITH PASSWORD='Neues!Kennwort'
GO
QUIT

Microsoft stellt das SQL Server Management Studio Version 17 für Windows als grafisches Tool bereit. Die IDE ist sehr Umfangreich und setzt viele Resourcen vorraus.

Eine alternative IDE stellt HeidiSQL dar.