Server im Docker-Container

Docker ist eine Open-Source-Plattform, die entwickelt wurde, um das Entwickeln der Anwendungen zu vereinfachen und zu beschleunigen. Die Hauptidee der Plattform besteht darin, eine Umgebung zu schaffen, in der die Anwendungen unabhängig vom Betriebssystem oder der Infrastruktur ausgeführt werden können. Das von uns für Docker entwickelte Stimulsoft Server-Image erfordert keine komplexe Konfiguration und ist nahezu sofort einsatzbereit. Das Image enthält und konfiguriert bereits alles, was erforderlich ist, um den Server auf jedem Betriebssystem, das Docker unterstützt, auszuführen und zu betreiben.

Mehr über Server erfahren

Um den Server aus dem Image zu starten, führen Sie einfach den Befehl "docker" mit unten angegebenen Argumenten aus:
docker run --name=stimulsoft-server -p 8080:8080 stimulsoft/server:latest
Dieser Befehl führt die folgenden Aktionen aus:
  • erstellt einen neuen Container mit dem Namen "stimulsoft-server";
  • gleicht den internen Port 8080 mit dem lokalen Port 8080 ab;
  • lädt die neueste Version des Servers aus Docker Hub herunter;
  • startet den Container mit den angegebenen Parametern.

Danach können Sie zu http://localhost:8080 gehen und die Arbeit des Servers sehen. In diesem Stadium ist es jedoch noch nicht möglich, den Server vollständig zu bewerten, da für seinen Betrieb eine Datenbankverbindung erforderlich ist.

Vorbereitung der Datenbank

Damit der Server ordnungsgemäß funktioniert, wird eine Datenbank benötigt. Der Server unterstützt die Arbeit mit MS SQL-, MySQL- und PostgreSQL-Datenbanken. In diesem Stadium muss der ausgewählte Datenbankserver bereits in Betrieb sein. Zuerst müssen Sie eine separate, leere Datenbank (Daten-schema) mit dem gewünschten Namen erstellen und dem Benutzer Berechtigungen zum Erstellen und Ändern von Tabellen in dieser Datenbank erteilen. Im Beispiel heißt das Datenschema "server", und der Benutzer "root" hat Zugriff auf alle Tabellen.

Um die Datenbank-Verbindungszeichenfolge an den Server zu übergeben, können Sie Umgebungsvariablen verwenden. Fügen Sie dazu dem run-Befehl die folgenden Argumente hinzu
docker run --name=stimulsoft-server -p 8080:8080 -e Storage__DatabaseType="MySql" -e Storage__MySqlConnectionString="Server=host.docker.internal; port=3306; Database=server; UserId=root; Pwd=123456;" stimulsoft/server:latest
Dieser Befehl setzt die folgenden Umgebungsvariablen:
  • Storage__DatabaseType: den Datenbanktyp, in diesem Fall "MySql";
  • Storage__MySqlConnectionString: die Verbindungszeichenfolge für die MySQL-Datenbank.

Im Beispiel ist die Adresse des Datenbankservers auf "host.docker.internal" gesetzt, die in Docker dafür reserviert ist, einen Container mit Anwendungen auf dem lokalen Computer (dem Host) zu verbinden. Wenn ein MySQL-Server auf dem lokalen Computer läuft und unter "localhost" erreichbar ist, ist er innerhalb des Containers unter "host.docker.internal" verfügbar.

Um eine Verbindung zu MS SQL- oder PostgreSQL-Datenbanken herzustellen, setzen Sie den Typ auf "MsSql" bzw. "PostgreSql" und verwenden die entsprechenden Umgebungsvariablen:
  • Storage__MsSqlConnectionString
  • Storage__PostgreSqlConnectionString

Nach Ausführung dieses Befehls können Sie zu http://localhost:8080 gehen und den Bildschirm zur Erstellung des Server-Administrators sehen. Wurde der Administrator bereits erstellt, wird stattdessen der Anmeldebildschirm angezeigt.

Festlegen des Arbeitsverzeichnisses des Servers

Der Server benötigt einen Speicherort für seine Protokolldateien und Service-Dateien. Standardmäßig befindet sich dieses Verzeichnis innerhalb des Containers unter folgendem Pfad:
/var/lib/stimulsoft-server
Der einfachste Weg, auf die Service-Dateien des Servers zuzugreifen, besteht darin, dieses Verzeichnis mit dem Verzeichnis auf dem lokalen Computer abzugleichen. Fügen Sie dazu einfach einen Parameter zum run-Befehl hinzu:
docker run --name=stimulsoft-server -p 8080:8080 -v "c:\docker\stimulsoft-server:/var/lib/stimulsoft-server" -e Storage__DatabaseType="MySql" -e Storage__MySqlConnectionString="Server=host.docker.internal; port=3306; Database=server; UserId=root; Pwd=123456;" stimulsoft/server:latest
Der Parameter "-v" gleicht das Windows-Verzeichnis "c:\docker\stimulsoft-server" auf dem lokalen Computer (Host) mit dem internen Container-Verzeichnis "/var/lib/stimulsoft-server" ab. Alle Service-Dateien des Servers befinden sich nun in diesem Verzeichnis. Selbst nach dem Löschen und Neuerstellen des Containers oder dem Kopieren des Verzeichnisses mit seinem Inhalt auf einen neuen Computer bleiben alle Daten erhalten, bis dieses Verzeichnis manuell gelöscht wird

HTTPS konfigurieren

Für eine sichere Verbindung zum Server wird empfohlen, das HTTPS-Protokoll zu verwenden, das ebenfalls einfach mithilfe von Umgebungsvariablen konfiguriert werden kann. Fügen wir dem run-Befehl dazu mehrere erforderliche Argumente hinzu:
docker run --name=stimulsoft-server -p 8080:8080 -v "c:\docker\stimulsoft-server:/var/lib/stimulsoft-server" -e Storage__DatabaseType="MySql" -e Storage__MySqlConnectionString="Server=host.docker.internal; port=3306; Database=server; UserId=root; Pwd=123456;" -e ASPNETCORE_HTTPS_PORTS=8081 -e Urls="https://*:8081;http://*:8080" -e ASPNETCORE_Kestrel__Certificates__Default__Path="/var/lib/stimulsoft-server/aspnetapp.pfx" -e ASPNETCORE_Kestrel__Certificates__Default__Password="123456" stimulsoft/server:latest
Dieser Befehl setzt die folgenden Umgebungsvariablen:
  • ASPNETCORE_HTTPS_PORTS: gibt den internen Port an, der für das HTTPS-Protokoll verwendet wird;
  • Urls: legt die zulässigen URL-Adressen fest, auf die der interne Kestrel-Server hört – in diesem Fall alle URLs für die Ports 8081 und 8080;
  • ASPNETCORE_Kestrel__Certificates__Default__Path: der Pfad zu einem PFX-Zertifikat, das von einer vertrauenswürdigen Zertifizierungsstelle bezogen werden sollte. Dieses Zertifikat muss im Container verfügbar sein; am einfachsten ist es, es in das Arbeitsverzeichnis des Servers "c:\docker\stimulsoft-server" zu kopieren und den internen Pfad zu diesem Verzeichnis anzugeben;
  • ASPNETCORE_Kestrel__Certificates__Default__Password: das Passwort des Zertifikates, das von der Zertifizierungsstelle erhalten wurde.

Nach dem Ausführen dieses Befehls können Sie in Ihrem Browser https://localhost:8081 öffnen und den Bildschirm zur Erstellung des Server-Administrators sehen. Wurde der Administrator bereits erstellt, wird stattdessen der Anmeldebildschirm angezeigt.

Wenn Sie noch kein Zertifikat haben, können Sie ein lokales Zertifikat für Entwicklungs- und Testzwecke erstellen. Führen Sie dazu den folgenden Befehl aus:
dotnet dev-certs https -ep "c:\docker\stimulsoft-server\aspnetapp.pfx" -p 123456
Ein lokales Zertifikat wird im Arbeitsverzeichnis des Servers mit dem angegebenen Passwort erstellt.

Verwendung des Befehls „docker compose"

Um einen Container zu erstellen und zu verwalten sowie mehrere Container gleichzeitig zu starten und Verbindungen zwischen ihnen zu konfigurieren, ist es bequemer, den Befehl "docker compose" zu verwenden. Dazu müssen Sie im Verzeichnis c:\docker die Datei docker-compose.yml erstellen, in der alle Parameter zum Starten des Docker-Containers definiert werden.

Als Beispiel können wir das Äquivalent des oben beschriebenen Ausführens vom Container mit Hilfe des Befehls "docker" nachbilden. Erstellen Sie die Datei "c:\docker\docker-compose.yml", die in diesem Fall wie folgt aussieht:
name: stimulsoft-server
services:
  server:
    image: stimulsoft/server:latest
    ports:
      - 8080:8080
      - 8081:8081
    volumes:
      - ./stimulsoft-server:/var/lib/stimulsoft-server
    environment:
      ASPNETCORE_HTTP_PORTS: 8080
      ASPNETCORE_HTTPS_PORTS: 8081
      Urls: "https://*:8081;http://*:8080"
      ASPNETCORE_Kestrel__Certificates__Default__Path: "/var/lib/stimulsoft-server/aspnetapp.pfx"
      ASPNETCORE_Kestrel__Certificates__Default__Password: 123456
      Storage__DatabaseType: "MySql"
      Storage__MySqlConnectionString: "Server=host.docker.internal; port=3306; Database=server; UserId=root; Pwd=123456;"
Anschließend wechseln Sie in das Verzeichnis "c:\docker" und führen den Befehl "docker compose up" aus. Dieser Befehl konfiguriert den Container basierend auf den Anweisungen in docker-compose.yml und startet die virtuelle Maschine.
Der Vorteil dieses Ansatzes liegt in der einfachen Bearbeitung der Container-Parameter sowie in der Möglichkeit, mehrere Container zu starten und Verbindungen zwischen ihnen zu konfigurieren. Beispielsweise können Sie einen separaten Container mit einem MySQL-Datenbankserver ausführen und den Server so konfigurieren, dass er mit diesem Container arbeitet. Dazu fügen Sie einfach das "mysql"-Image aus Docker Hub in die Datei ein und ändern die Verbindungszeichenfolge:
name: stimulsoft-server
services:
  server:
    image: stimulsoft/server:latest
    ports:
      - 8080:8080
      - 8081:8081
    volumes:
      - ./stimulsoft-server:/var/lib/stimulsoft-server
    environment:
      ASPNETCORE_HTTP_PORTS: 8080
      ASPNETCORE_HTTPS_PORTS: 8081
      Urls: "https://*:8081;http://*:8080"
      ASPNETCORE_Kestrel__Certificates__Default__Path: "/var/lib/stimulsoft-server/aspnetapp.pfx"
      ASPNETCORE_Kestrel__Certificates__Default__Password: 123456
      Storage__DatabaseType: "MySql"
      Storage__MySqlConnectionString: "Server=mysql; port=3306; Database=server; UserId=root; Pwd=123456;"
  
  mysql:
    image: mysql:8.0
    ports:
      - 3306:3306
    volumes:
      - './mysql:/var/lib/mysql'
    environment:
      MYSQL_ROOT_PASSWORD: "123456"
      MYSQL_DATABASE: "server"
Diese Konfiguration richtet den Container wie folgt ein:
  • Verwendet das MySQL-Server-Image Version 8.0;
  • Gleicht das lokale Verzeichnis "c:\docker\mysql" mit dem internen Verzeichnis "/var/lib/mysql" im MySQL-Container ab, in dem alle Datenbanktabellen gespeichert werden;
  • Gleicht den lokalen Port 3306 mit dem internen Port 3306 des Containers für den Datenbankzugriff;
  • Stellt Umgebungsvariablen ein, um das Datenbankpasswort und den Namen des Datenschemas festzulegen, das nach dem Start des MySQL-Containers automatisch erstellt wird.

In der Verbindungszeichenfolge sollte die Adresse des MySQL-Servers als Containername angegeben werden, in diesem Fall "mysql". Nach Ausführung des Befehls "docker compose up" werden zwei Container gestartet und eine Verbindung zwischen ihnen hergestellt. Dann können Sie in Ihrem Browser https://localhost:8081 öffnen und den Bildschirm zur Erstellung des Server-Administrators sehen. Wurde der Administrator bereits erstellt, wird stattdessen der Anmeldebildschirm angezeigt.

Zusätzliche Einstellungen des Servers

Neben der zuvor beschriebenen Datenbankverbindung und der HTTPS-Konfiguration bietet der Server viele weitere Einstellungen, die in verschiedene Kategorien unterteilt sind. Sie können Parameter für das Versenden von E-Mails konfigurieren, Elemente der Server-Weboberfläche anpassen, Anmeldeoptionen festlegen und allgemeine Berichterstellungs-Einstellungen definieren.

Ein Beispiel einiger Server-Einstellungen:
name: stimulsoft-server
services:
  server:
    image: stimulsoft/server:latest
    ports:
      - 8080:8080
      - 8081:8081
    volumes:
      - ./stimulsoft-server:/var/lib/stimulsoft-server
    environment:
      LoginUi__ShowSignUp: false
      Reports__AllowReportCompilation: false
      Smtp__UserName: "Stimulsoft"
      Smtp__Password: "123456"
      NavigationUi__ShowData: false
      MainUi__ShowDownload: false
      Storage__DatabaseType: "MySql"
      Storage__MySqlConnectionString: "Server=host.docker.internal; port=3306; Database=server; UserId=root; Pwd=123456;"
Die volle Liste der verfügbaren Server-Einstellungen mit ausführlicher Beschreibung können Sie in der Dokumentation aus unserer Webseite finden.

Aktualisierung des Servers

Einer der Vorteile der Verwendung von Docker ist die einfache Versionskontrolle des Servers. Im Beispiel wird als Tag der Version die "latest"-Version verwendet, die immer der neuesten Server-Version entspricht und mit jeder neuen Veröffentlichung aktualisiert wird. Falls Sie aus irgendeinem Grund eine bestimmte Version des Servers verwenden müssen, können Sie diese Version aus den verfügbaren im Docker-Hub-Repository auswählen und sie als Tag angeben.
name: stimulsoft-server
services:
  server:
    image: stimulsoft/server:2025.3.1
Nach dem Ändern der Version oder wenn Sie die neueste "latest"-Version erneut herunterladen möchten, müssen Sie das aktualisierte Image aus dem Repository herunterziehen. Dies kann einfach mit dem Befehl "docker compose pull" durchgeführt werden. Danach muss man den Container wieder starten, und er wird automatisch auf die neue Version aktualisiert.

Um Speicherplatz auf Ihrem Computer zu sparen, können Sie veraltete und nicht genutzte Images entfernen. Dies erfolgt mit dem Befehl "docker image prune". Sollte eines der entfernten Images später erneut für das Erstellen und Ausführen eines Containers benötigt werden, wird es automatisch wieder von Docker Hub heruntergeladen.

Was kommt als Nächstes?

Unsere Benutzer-Anleitungen und technische Dokumentation helfen Ihnen die Daten-Analytik und Visualisierung schneller und mehr effizient zu machen. Außerdem, Sie können die Schulungen mit unseren Fachleuten bestellen und unseren YouTube-Kanal abonnieren, um immer aktuellste Videos zu erhalten.

Videostunden

Wir haben viele Videomaterials über Entwickeln von Berichten und Dashboards vorbereitet. Alle Anleitungen sind nach spezifischen Themen gruppiert und werden regelmäßig aktualisiert und ergänzt.

Dokumentation

Die Dokumentation beschreibt ausführlich sowohl die allgemeinen Möglichkeiten der Software, als auch die Besonderheiten der Einstellungen der Berichtskomponenten.
By using this website, you agree to the use of cookies for analytics and personalized content. Cookies store useful information on your computer to help us improve efficiency and usability. For more information, please read the privacy policy and cookie policy.