Skip to content

Startseite

Diese Informationssammlung beschreibt ein mögliches Verfahren zum Aufsetzen eines Linux Servers mit Anwendungen in Docker Containern. Die meisten hier vorgestellten Anwendungen sind webbasiert und werden über einen Reverse Proxy aus dem Internet erreichbar gemacht.

Lokales HTTP Routing

Nachdem die Anfragen den Reverse Proxy auf unserem eigenen Host erreicht haben, werden diese je nach verwendetem Reverse Proxy über lokal gebundene Ports oder Docker Labels an den Container weitergeleitet, der den Dienst bereitstellt.

Verzeichnisstruktur

Jeder bereitgestellte Dienst erhält zwei Verzeichnisse:

  1. Im Verzeichnis /home/admin/<service> liegt die Container-Definition (docker-compose.yml),
  2. die Daten des Dienstes werden im Verzeichnis /srv/<service> gespeichert.

Umgebungsvariablen

Schützenswerte Umgebungsvariablen (Passwörter, API Tokens, ...) werden nicht in der Containerdefinition abgelegt, sondern in einer separaten env-Datei, um die Gefahr einer Offenlegung dieser (z. B. beim Teilen des Bildschirms) zu reduzieren. Diese werden entsprechend des Container-Namen im docker compose Kontext benannt.

Im folgenden Beispiel-Dienst (service: example, service_name: example_srv) würde die env-Datei unter dem Pfad /home/admin/example/.example_srv.env angelegt werden.

# /home/admin/example/docker-compose.yml
services:
  example_srv:
    image: ...
    env_file: .example_srv.env