Direkt zum Hauptinhalt

Docker Container Linux

Beschreibung:

Installation in einem Docker container.
Der Instanzname kann leider nicht geändert werden und heißt immer MSSQLSERVER.
Der hintergrund ist für mehrere instanzen, mehere Docker conatiner zu fahren.

Vorraussetzung:

apt install docker-compose

Installation

Wir nutzen hier eine docker compose Datei.

Hinweis: Möchte man vorher noch Daten migrieren, erst die Daten einfügen und dann den Container starten.

Verzeichnisstruktur anlegen

Dieses Verzeichnis representiert das /var/opt/mssql Verzeichnis im Container

mkdir -p /root/mssql/data

möchte man noch Daten migrieren , dann diese hier reinkopieren

Nun noch die Berechtigung für den mssql benutzer setzten.
Da es diesen auf dem Host natürlich nicht sondern nur im Container nutzen wir hier die ID

chown -R 10001:10001 /root/mssql/data
chmod -R 700 /root/mssql/data

Nun legen wir eine .env Datei im mssql Verzeichnis an,
Das Kennwort darin wird ignoriert wenn schon vorher eine Datenbank reinkopiert wurde.

nano /root/mmsql/.env

Inhalt

DATA_DIRECTORY=/root/mssql/data
SA_PASSWORD=IhrStarkesKennwort

nun die Docker compose Datei.

nano /root/mssql/docker-compose.yml

Inhalt

version: '3.8'

services:
  mssql-server:
    image: mcr.microsoft.com/mssql/server:2019-latest
    environment:
      ACCEPT_EULA: 'Y'
      SA_PASSWORD: ${SA_PASSWORD}
      MSSQL_PID: 'Express'
    volumes:
      - ${DATA_DIRECTORY}:/var/opt/mssql
    ports:
      - "1433:1433"
    restart: always

Über das Image kann man die Version anpassen.
Mit MSSQL_PID: wir die Editionsvariante angeben

  1. Express: MSSQL_PID='Express'. Diese Edition ist kostenlos und eignet sich für leichte, weniger anspruchsvolle Datenbankanwendungen. Sie hat Einschränkungen in Bezug auf die Datenbankgröße und die Ressourcennutzung.

  2. Developer: MSSQL_PID='Developer'. Diese Edition ist ebenfalls kostenlos und bietet alle Funktionen der Enterprise Edition, ist jedoch nur für Entwicklung und Testzwecke lizenziert, nicht für Produktionsumgebungen.

  3. Standard: MSSQL_PID='Standard'. Diese Edition ist für kleinere bis mittelgroße Unternehmen gedacht und bietet mehr Funktionen als die Express Edition, einschließlich Unterstützung für größere Datenbanken und mehrere Prozessoren.

  4. Enterprise: MSSQL_PID='Enterprise'. Dies ist die voll ausgestattete Edition, die für große Unternehmen und anspruchsvolle Datenbankanwendungen geeignet ist. Sie bietet die fortschrittlichsten Funktionen.

  5. Web: MSSQL_PID='Web'. Diese Edition ist speziell für Webhosting-Umgebungen konzipiert.

  6. Evaluation: MSSQL_PID='Evaluation'. Diese Edition ist eine Testversion, die alle Funktionen der Enterprise Edition bietet, aber nur für 180 Tage gültig ist.

Nun ins mssql verzeichnis wechseln und den container starten

cd /root/mssql
docker-compose up -d

Auf den Datenbank-Server zugreifen

In Anwendungen nur die IP Adresse angeben, den sa Benutzer und das Kennwort.
In der Docker Variante wird dann instanzname MSSQLSERVER nicht nach außen getragen.
Also der Standard IP\SQLINSTANZ entfällt
Also nur noch IP