Skip to main content

DatenCloud-Server Installation

Wenn Sie eine SPG-DatenCloud auf einem Ubuntu-Server betreiben möchten, kann dieser komfortabel über Docker bereitgestellt werden.

Diese Anleitung beschreibt die Installation eines Microsoft SQL Server 2022 Express als Docker-Container auf einem Ubuntu-Server.


Vorraussetzung ist die Installation von Docker auf dem Ubuntu-Server.

Die offizielle Anleitung zur Docker-Installation unter Ubuntu finden Sie hier:

https://docs.docker.com/engine/install/ubuntu/


Firewall konfigurieren

Damit Clients den SQL-Server erreichen können, muss der verwendete SQL-Port in der Firewall freigegeben werden.

Standardmäßig verwendet Microsoft SQL Server den TCP-Port 1433.

Wenn Sie in der späteren Konfiguration einen anderen Port verwenden, ersetzen Sie 1433 entsprechend durch Ihren gewählten Port.

Beispiel:


sudo ufw allow MSSQL-Port/tcp

Prüfen Sie anschließend den Status der Firewall:


sudo ufw status

Verzeichnisse vorbereiten

Für den MSSQL-Container wird ein Verzeichnis unterhalb von /opt/docker/mssql angelegt.

Darin werden die Daten des SQL-Servers dauerhaft gespeichert.


sudo mkdir -p /opt/docker/mssql
sudo mkdir -p /opt/docker/mssql/data
cd /opt/docker/mssql

Damit der SQL-Server-Container Schreibrechte auf das Datenverzeichnis erhält, müssen die Berechtigungen angepasst werden.


sudo chown -R 10001:0 /opt/docker/mssql/data
sudo chmod -R 770 /opt/docker/mssql/data

Der Benutzer mit der ID 10001 wird vom Microsoft SQL Server Container verwendet.


Docker Compose Datei erstellen

Erstellen Sie im Verzeichnis /opt/docker/mssql die Datei compose.yml.


sudo nano /opt/docker/mssql/compose.yml

Fügen Sie folgenden Inhalt ein:


services:
  mssql:
    image: mcr.microsoft.com/mssql/server:2022-latest
    container_name: ${MSSQL_CONTAINERNAME:-mssql}
    restart: unless-stopped
    env_file: .env
    environment:
      ACCEPT_EULA: ${ACCEPT_EULA}
      MSSQL_SA_PASSWORD: ${MSSQL_SA_PASSWORD}
      MSSQL_PID: ${MSSQL_PID:-Express}
      TZ: ${TZ:-Europe/Berlin}
    ports:
      - ${MSSQL_PORT}:1433
    volumes:
      - ${MSSQL_DIRECTORY}:/var/opt/mssql

Speichern Sie die Datei anschließend mit:


STRG + O
ENTER
STRG + X

Konfigurationsdatei .env erstellen

Die wichtigsten Einstellungen werden in einer separaten .env-Datei gespeichert.

Erstellen Sie diese Datei mit folgendem Befehl:


sudo nano /opt/docker/mssql/.env

Fügen Sie folgenden Inhalt ein:


MSSQL_CONTAINERNAME="mssql_server"
MSSQL_SA_PASSWORD="<STARKES_PASSWORT_OHNE_ANFUEHRUNGSZEICHEN>"
MSSQL_PORT="MSSQL-Port"
ACCEPT_EULA="Y"
MSSQL_PID="Express"
TZ="Europe/Berlin"
MSSQL_DIRECTORY="/opt/docker/mssql/data"

Passen Sie mindestens das Passwort an.

Beispiel:


MSSQL_SA_PASSWORD="SehrSicheresPasswort123!"

Wichtig:
Das Passwort muss den Anforderungen von Microsoft SQL Server entsprechen. Verwenden Sie ein langes und sicheres Passwort mit Großbuchstaben, Kleinbuchstaben, Zahlen und Sonderzeichen.

Speichern Sie die Datei anschließend.


Bedeutung der wichtigsten Parameter


Parameter Bedeutung
MSSQL_CONTAINERNAME Name des Docker-Containers
MSSQL_SA_PASSWORD Passwort für den SQL-Administratorbenutzer sa
MSSQL_PORT Extern erreichbarer TCP-Port des SQL-Servers
ACCEPT_EULA Zustimmung zu den Microsoft-Lizenzbedingungen
MSSQL_PID SQL Server Edition, z. B. Express
TZ Zeitzone des Containers
MSSQL_DIRECTORY Lokaler Speicherort der SQL-Server-Daten

Container starten

Wechseln Sie in das Verzeichnis des Docker-Projekts:


cd /opt/docker/mssql

Starten Sie anschließend den MSSQL-Container:


docker compose up -d

Der Container wird nun im Hintergrund gestartet.


Status prüfen

Prüfen Sie, ob der Container erfolgreich gestartet wurde:


docker compose ps

Die Ausgabe sollte zeigen, dass der Container läuft.

Zusätzlich können Sie die Protokolle des Containers anzeigen:


docker compose logs -f mssql

Warten Sie, bis der SQL-Server vollständig gestartet ist.


Verbindung zum SQL-Server

Nach erfolgreichem Start ist der SQL-Server unter folgender Adresse erreichbar:


Server-IP:MSSQL-Port

Beispiel bei Standardport:


203.0.113.1:1433

Als Benutzer verwenden Sie:


sa

Das Passwort entspricht dem Wert aus der .env-Datei:


MSSQL_SA_PASSWORD

Beispiel für eine Verbindung

Bei Verwendung des Standardports kann die Verbindung beispielsweise wie folgt aufgebaut werden:


Feld Wert
Server Server-IP,1433
Benutzer sa
Passwort Passwort aus MSSQL_SA_PASSWORD
Authentifizierung SQL Server-Authentifizierung

Je nach Client-Programm muss der Port mit Komma statt Doppelpunkt angegeben werden.

Beispiel:


203.0.113.1,1433

Container verwalten

Den Container stoppen Sie mit:


cd /opt/docker/mssql
docker compose down

Den Container erneut starten Sie mit:


docker compose up -d

Die Logs können jederzeit mit folgendem Befehl angezeigt werden:


docker compose logs -f mssql

Hinweise zur Sicherheit

Wenn der SQL-Server über das Internet erreichbar ist, sollten Sie besonders auf die Sicherheit achten.

Empfohlen wird:

  • Verwenden Sie ein sehr starkes sa-Passwort.
  • Geben Sie den SQL-Port nur für bekannte IP-Adressen frei, wenn möglich.
  • Verwenden Sie nach Möglichkeit nicht den Standardport 1433.
  • Erstellen Sie für Anwendungen eigene SQL-Benutzer.
  • Nutzen Sie den sa-Benutzer nicht dauerhaft für Anwendungen.
  • Führen Sie regelmäßige Datensicherungen durch.
  • Halten Sie Ubuntu, Docker und den SQL-Server-Container aktuell.

Beispiel für eine eingeschränkte Firewall-Freigabe auf eine feste Client-IP:


sudo ufw allow from CLIENT-IP to any port 1433 proto tcp

Fertigstellung

Damit ist die Installation abgeschlossen.

Der Microsoft SQL Server läuft nun als Docker-Container auf dem Ubuntu-Server und speichert seine Daten dauerhaft unter:


/opt/docker/mssql/data

Der Server ist – bei passender Firewall-Freigabe – über folgende Adresse erreichbar:


Server-IP:MSSQL-Port

Beispiel:


203.0.113.1:1433

Die Einrichtung war erfolgreich, wenn der Container läuft und sich ein SQL-Client mit dem Benutzer sa und dem hinterlegten Passwort verbinden kann.