Loading...
Docker PostGIS Setup: PostGIS Spatial-Datenbank einfach mit Docker betreiben

Docker PostGIS Setup: PostGIS Spatial-Datenbank einfach mit Docker betreiben

Jonas Scholz - Co-Founder von sliplane.ioJonas Scholz
5 min

PostGIS erweitert PostgreSQL-Datenbanken um geografische Funktionen. Damit kannst du räumliche Daten direkt in PostgreSQL speichern, durchsuchen und verwalten. Beispiele für räumliche Daten sind Koordinaten, Adressen oder geografische Formen. Benötigt deine Anwendung geografische Abfragen (z.B. Orte innerhalb eines bestimmten Radius finden), stellt PostGIS genau diese Funktionen bereit.

In dieser Anleitung lernst du Schritt für Schritt, PostGIS mithilfe von Docker und Docker Compose zu betreiben.

PostGIS einrichten

Der Docker-PostGIS-Container basiert auf dem offiziellen PostgreSQL-Image. Daher übernimmt er auch dessen Umgebungsvariablen zur Konfiguration.

Unterstützte Umgebungsvariablen

Diese Variablen helfen dabei, deinen PostGIS-Container beim Start einzurichten:

  • POSTGRES_PASSWORD Zwingend erforderlich. Definiert das Passwort für die PostgreSQL-Datenbank.
    POSTGRES_PASSWORD=mysecretpassword
    
  • POSTGRES_USER Datenbank-Administrator-Benutzername (postgres ist Default, wenn nicht angegeben).
    POSTGRES_USER=mydatabaseuser
    
  • POSTGRES_DB Datenbankname, der beim Start automatisch erstellt wird. Standardmäßig ist das der gleiche Name wie der POSTGRES_USER.
    POSTGRES_DB=mygisdb
    
  • POSTGRES_INITDB_ARGS Zusätzliche Initialisierungsparameter für PostgreSQL-Datenbanken.
    POSTGRES_INITDB_ARGS="--encoding=UTF8"
    
  • POSTGRES_INITDB_WALDIR Separates Verzeichnis für Write-Ahead-Log-Dateien bei der Initialisierung.
    POSTGRES_INITDB_WALDIR=/logs
    
  • POSTGRES_HOST_AUTH_METHOD Legt die Host-Authentifizierungsmethode fest (scram-sha-256 ist der Standard).
    POSTGRES_HOST_AUTH_METHOD=trust
    
  • PGDATA Verzeichnis für PostgreSQL-Daten innerhalb des Containers.
    PGDATA=/var/lib/postgresql/data
    

Docker Compose nutzen

Docker Compose vereinfacht das Verwalten mehrerer Docker-Container deutlich. Hier ein Beispiel, wie eine PostgreSQL-Datenbank mit aktivierter PostGIS-Erweiterung aussieht:

Beispiel für Docker Compose

Erstelle eine Datei namens docker-compose.yml mit folgendem Inhalt:

services:
  postgis:
    image: postgis/postgis:16-3.4-alpine
    container_name: postgis
    restart: always
    ports:
      - "5432:5432"
    environment:
      POSTGRES_DB: spatial_db
      POSTGRES_USER: admin
      POSTGRES_PASSWORD: secretpassword
    volumes:
      - postgis_data:/var/lib/postgresql/data

volumes:
  postgis_data:

Container starten

Platziere deine docker-compose.yml Datei in einem Ordner und starte den Container mit folgendem Befehl:

docker-compose up -d

Docker lädt automatisch das entsprechende PostGIS-Image herunter, erstellt den Container postgis mit der Datenbank spatial_db, Benutzer admin und Passwort secretpassword. Port 5432 wird auf deinen Host übertragen.

Anschließend kannst du dich mit Tools wie QGIS oder jedem PostgreSQL-Client über localhost:5432 verbinden.

Deployen mit Sliplane

Am einfachsten kannst du deine PostGIS-Datenbank mit Sliplane deployen. Melde dich einfach dort an (kostenlose Testphase von 2 Tagen) und erstelle einen neuen Service.

Wähle das PostGIS-Image, stelle sicher, dass als Servicetyp "TCP" ausgewählt ist, und setze folgende Umgebungsvariablen: den Datenbanknamen (POSTGRES_DB), Benutzernamen (POSTGRES_USER) und Passwort (POSTGRES_PASSWORD). Zum Schluss erstellst du noch ein Volume, um die PostGIS-Daten dauerhaft zu speichern (/var/lib/postgresql/data) – und klickst auf "Deploy".

Fertig! Schon läuft deine PostGIS-Datenbank auf Sliplane.


Häufig gestellte Fragen (FAQ)

Du hast Fragen? Wir liefern dir hier die Antworten!

Wie überprüfe ich, ob PostGIS installiert ist?

Verbinde dich per psql oder einem anderen PostgreSQL-Client mit deiner Datenbank und führe folgende SQL-Abfrage aus:

SELECT PostGIS_version();

Wenn PostGIS korrekt installiert ist, erhältst du die Versionsinformationen, z.B.:

     postgis_version
------------------------
 3.4 USE_GEOS=1 USE_PROJ=1 USE_STATS=1

Alternativ kannst du alle installierten Erweiterungen anzeigen lassen:

\dx

In der ausgegebenen Tabelle solltest du dann PostGIS-Erweiterungen finden.

Läuft das auch auf ARM-CPUs?

Ja! Offizielle PostGIS Docker Images (postgis/postgis) unterstützen nativ ARM-Plattformen (ARM64-Architektur). Somit kannst du diese Images problemlos auf ARM-basierten Geräten wie Apple Silicon Macs, Raspberry Pis oder AWS Graviton Server einsetzen.

Sliplane Preise – Gibt es versteckte Kosten?

Nein! Sliplane berechnet immer eine transparente, fixe Grundgebühr. Der einzige variable Kostenfaktor ist die Bandbreiten-Nutzung, die jeweils pauschal mit 2 Euro pro TB berechnet wird (leichte Unterschiede je nach Standort möglich).

Sind Docker-basierte PostGIS-Container sicher?

Die offiziellen PostGIS-Container folgen Industriestandards und Sicherheits-Best-Practices. Das zugrunde liegende PostgreSQL-Base-Image bezieht regelmäßig Security-Patches aus Debian- oder Alpine Linux-Repositories. Zusätzlich empfehlen wir folgende Maßnahmen:

  • Verwende starke, individuelle Passwörter und ändere die Default-Postgres-Passwörter unbedingt.
  • Begrenze Netzwerkzugriffe und öffne nur wirklich notwendige Ports.
  • Aktualisiere eingesetzte Container regelmäßig, um stets die aktuellsten Security-Patches zu erhalten.
  • Führe regelmäßige Backups durch (falls doch einmal etwas schiefgeht).

Plattformen wie Sliplane kümmern sich bereits um einige Sicherheitsaspekte automatisch. Beachtest du zusätzlich diese Docker Best-Practices, ist deine PostGIS-Installation bestmöglich geschützt.

Willkommen in der Container-Cloud

Sliplane macht es einfach, Container in der Cloud zu deployen und bei Bedarf zu skalieren. Probier es jetzt aus!