Führen Sie den PostGIS-Server als Docker-Container aus

Fuhren Sie Den Postgis Server Als Docker Container Aus



Es besteht kein Zweifel, dass Docker in den letzten Jahren zu einem der am häufigsten verwendeten Entwicklertools geworden ist. Mit Docker können wir Anwendungen in isolierten Umgebungen entwickeln, verpacken, versenden und ausführen, die alle für die Ausführung der Anwendung erforderlichen Abhängigkeiten enthalten.

PostGIS ist eine Erweiterung der PostgreSQL-Datenbank, die Unterstützung für geografische Datenobjekte hinzufügt. Dadurch können wir die PostgreSQL-Datenbank zum Speichern und Abfragen räumlicher Daten verwenden. Wie Sie sich vorstellen können, bietet die Kombination von PostGIS und Docker eine effiziente und umfassende Methode zur Verwaltung räumlicher Daten.

In diesem Tutorial erfahren wir, wie wir schnell eine PostGIS-Instanz in einem Docker-Container einrichten können. Wir werden auch einige PostGIS-Grundlagen behandeln und lernen, wie man räumliche Daten lädt und einige grundlegende Abfragen mithilfe des Containers durchführt.







Anforderungen:

Um diesem Tutorial folgen zu können, stellen Sie sicher, dass Sie über Folgendes verfügen:



  1. Docker Engine auf Ihrem System installiert. In unseren Tutorials erfahren Sie, wie Sie Docker auf Ihrem Zielsystem installieren.
  2. Grundkenntnisse in PostgreSQL und Geodaten

Wenn die gegebenen Voraussetzungen erfüllt sind, können wir mit dem Tutorial fortfahren.



Führen Sie PostGIS in Docker aus

Lassen Sie uns fortfahren und den PostGIS-Container einrichten. Wir beginnen damit, den PostGIS-Container mit dem folgenden Befehl vom Docker Hub abzurufen:





$ Docker Pull Postgis/Postgis

Sobald wir das Image heruntergeladen haben, können wir den Container mit dem Image ausführen, wie im folgenden Befehl gezeigt:



$ docker run --name postgis-server -e POSTGRES_PASSWORD =password -d -p 5432:5432 postgis/postgis

Im angegebenen Befehl geben wir die folgenden Parameter an:

  1. –name – Damit können wir den Namen des Containers angeben.
  2. -e – Dadurch können wir das PostgreSQL-Passwort als Umgebungsvariable festlegen. Dies ist das Passwort, das für den Postgres-Benutzer verwendet wird.
  3. -d – Dies weist Docker an, den Container im Hintergrund oder im getrennten Modus auszuführen.
  4. -p 5432:5432 – Dadurch können wir den Port 5432 im Container dem Host auf Port 5432 zuordnen.

Um zu überprüfen, ob der Container ausgeführt wird, verwenden Sie den folgenden Befehl:

$ Docker PS

Der PostGIS-Container sollte aufgelistet sein.

Laden Sie die Geodaten in PostGIS

Nachdem der PostGIS-Container nun ausgeführt wird, können wir die räumlichen Daten mit verschiedenen Tools und Formaten wie GeoJSON, CSV usw. laden.

Für diesen Fall verwenden wir ein Shapefile wie in den folgenden Befehlen gezeigt:

$ mkdir -p ~/data
$ cd ~/data
wget https://www.naturalearthdata.com/http//www.naturalearthdata.com/download/110m/cultural/ne_110m_admin_0_countries.zip
$ ne_110m_admin_0_countries.zip entpacken

In den angegebenen Befehlen erstellen wir zunächst ein Verzeichnis zum Speichern der Daten, die wir laden möchten. Anschließend laden wir über den angegebenen Link Geodaten herunter und extrahieren sie in das Verzeichnis.

Der nächste Schritt besteht darin, die Daten in die Datenbank zu laden. Wir beginnen mit der Verbindung zur PostgreSQL-Datenbank mit dem folgenden Befehl:

$ docker exec -it postgis-server psql -U postgres -d postgres

Wenn Sie zur Eingabe eines Kennworts aufgefordert werden, geben Sie das Kennwort ein, das Sie beim Ausführen des Containers konfiguriert haben. Dies sollte Sie authentifizieren und Sie in die PostgreSQL-Shell einbinden.

Sobald wir mit der Datenbank verbunden sind, können wir das Dienstprogramm „shp2pgsql“ verwenden, um die Daten aus den Shapefiles zu importieren, die wir in den vorherigen Schritten extrahiert haben.

postgres=# shp2pgsql -I -s 4326 ne_110m_admin_0_countries | psql -U postgres -d postgres

Im vorherigen Befehl verwenden wir die Option -I, um einen räumlichen Index für eine schnellere Abfrage der räumlichen Daten zu erstellen. Mit dem Parameter -s geben wir auch das Koordinatensystem als 4326 an. EPSG:4326 ist das Standard-Koordinatensystem für WGS 84.

PostGIS-Abfragedaten

Sobald wir die Daten geladen haben, können wir das PSQL-Dienstprogramm beenden, indem wir den Befehl „\q“ ausführen oder beenden.

Um zu überprüfen, ob die Daten geladen sind, können wir als Nächstes die Verbindung zur Datenbank wiederherstellen, indem wir den folgenden Befehl ausführen:

$ docker exec -it postgis-container psql -U postgres -d postgres

Als Nächstes können Sie die grundlegenden räumlichen Abfragen ausführen, um zu überprüfen, ob die Daten gespeichert sind.

Abschluss

In diesem Tutorial haben Sie gelernt, wie Sie den PostGIS-Server als Docker-Container ausführen und die Daten in die Datenbank laden.