Direkt zum Hauptinhalt

Installation mit Docker

Seit der SQL Server Version 2017 ist der Microsoft SQL Server auch unter Linux als Docker Container verfügbar. Mittlerweile sind auch die meisten Funktionen unter Linux verfügbar, sodass der Docker Container eine gute Möglichkeit bietet, um SQL Datenbanken mit Microsofts SQL Server zu nutzen. Besonders für Testumgebungen ist dies ein besonders großer Mehrwert, damit schon früh im Entwicklungsstadium mit "echten" MS SQL Servern getestet werden kann ohne extra einen SQL Server unter Windows installieren zu müssen, was doch einen erheblichen Aufwand darstellt.

Für die Bereitstellung eines SQL Servers in der aktuellen Version 2022 mit persistentem Speicher genügt die folgende Docker Compose Konfiguration.

services:
  sql:
    image: mcr.microsoft.com/mssql/server:2022-latest
    container_name: sql
    environment:
      - ACCEPT_EULA=Y
      - MSSQL_SA_PASSWORD=EinNichtSoTolles08.15Passort
      - MSSQL_BACKUP_DIR=/var/opt/mssql/backup
      - MSSQL_LOG_DIR=/var/opt/mssql/log
    volumes:
      - /pfad/zu/sql/data:/var/opt/mssql/data
      - /pfad/zu/sql/log:/var/opt/mssql/log
      - /pfad/zu/sql/backup:/var/opt/mssql/backup

In dieser Konfiguration wurden bereits die Daten des SQL Servers in eigene Ordner geteilt, sodass die Logs und Backups separat von den aktuellen Daten liegen. Dies ist für optionale zusätzliche Konfigurationen wie Log Dateien abschneiden und Backups wichtig. Auch Migrationen werden hierdurch vereinfacht.

Um die Docker Compose Konfiguration auszuführen, kann am besten in das Verzeichnis der YAML Datei gewechselt werden. Danach wird je nach nach gewählter Installation sudo docker-compose up -d oder sudo docker compose up -d (keine Bindestrich zwischen docker und compose) eingegeben, um die Standard Konfiguration docker-compose.yml zu starten. Compose erstellt dann die gewünschten Container mit den angegeben Optionen. Sollten die Container bereits mit dieser Compose Konfiguration erstellt worden sein, so werden die Container in dieser neu erstellt, dessen Konfiguration geändert wurde.