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

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 derPOSTGRES_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.