Εκτελέστε τον PostGIS Server ως Docker Container

Ekteleste Ton Postgis Server Os Docker Container



Δεν υπάρχει αμφιβολία ότι το Docker έχει γίνει ένα από τα πιο ευρέως χρησιμοποιούμενα εργαλεία προγραμματιστών τα τελευταία χρόνια. Το Docker μας επιτρέπει να αναπτύσσουμε, να συσκευάζουμε, να αποστέλλουμε και να εκτελούμε τις εφαρμογές σε απομονωμένα περιβάλλοντα που περιέχουν όλες τις εξαρτήσεις που απαιτούνται για την εκτέλεση της εφαρμογής.

Το PostGIS είναι μια επέκταση της βάσης δεδομένων PostgreSQL που προσθέτει υποστήριξη για αντικείμενα γεωγραφικών δεδομένων. Αυτό μας επιτρέπει να χρησιμοποιήσουμε τη βάση δεδομένων PostgreSQL για την αποθήκευση και την αναζήτηση χωρικών δεδομένων. Όπως μπορείτε να μαντέψετε, ο συνδυασμός PostGIS και Docker παρέχει μια αποτελεσματική και εκτεταμένη μέθοδο διαχείρισης χωρικών δεδομένων.

Σε αυτό το σεμινάριο, θα μάθουμε πώς μπορούμε να ρυθμίσουμε γρήγορα μια παρουσία PostGIS μέσα σε ένα κοντέινερ Docker. Θα καλύψουμε επίσης ορισμένα βασικά στοιχεία του PostGIS και θα μάθουμε πώς να φορτώνουμε χωρικά δεδομένα και να εκτελούμε ορισμένα βασικά ερωτήματα χρησιμοποιώντας το κοντέινερ.







Απαιτήσεις:

Για να ακολουθήσετε αυτό το σεμινάριο, βεβαιωθείτε ότι έχετε τα εξής:



  1. Εγκατεστημένο Docker Engine στο σύστημά σας. Μπορείτε να ελέγξετε τα σεμινάρια μας σχετικά με τον τρόπο εγκατάστασης του Docker στο σύστημα προορισμού σας.
  2. Βασικές γνώσεις PostgreSQL και χωρικών δεδομένων

Εφόσον πληρούνται οι δεδομένες απαιτήσεις, μπορούμε να προχωρήσουμε με το σεμινάριο.



Εκτελέστε το PostGIS στο Docker

Ας προχωρήσουμε και ας ρυθμίσουμε το κοντέινερ PostGIS. Ξεκινάμε τραβώντας το κοντέινερ PostGIS από το Docker Hub με την ακόλουθη εντολή:





$ docker pull postgis/postgis

Μόλις κατεβάσουμε την εικόνα, μπορούμε να εκτελέσουμε το κοντέινερ χρησιμοποιώντας την εικόνα όπως φαίνεται στην ακόλουθη εντολή:



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

Στη δεδομένη εντολή, καθορίζουμε τις ακόλουθες παραμέτρους:

  1. –name – Αυτό μας επιτρέπει να καθορίσουμε το όνομα του κοντέινερ.
  2. -e – Αυτό μας επιτρέπει να ορίσουμε τον κωδικό πρόσβασης PostgreSQL ως μεταβλητή περιβάλλοντος. Αυτός είναι ο κωδικός πρόσβασης που χρησιμοποιείται για τον χρήστη postgres.
  3. -d – Αυτό λέει στο Docker να τρέξει το κοντέινερ σε λειτουργία παρασκηνίου ή σε λειτουργία αποσύνδεσης.
  4. -σελ 5432:5432 – Αυτό μας επιτρέπει να αντιστοιχίσουμε τη θύρα 5432 μέσα στο κοντέινερ στον κεντρικό υπολογιστή στη θύρα 5432.

Για να επαληθεύσετε ότι το κοντέινερ εκτελείται, χρησιμοποιήστε την ακόλουθη εντολή:

$ docker ps

Θα πρέπει να δείτε το κοντέινερ PostGIS στη λίστα.

Φορτώστε τα Χωρικά Δεδομένα στο PostGIS

Τώρα που έχουμε το κοντέινερ PostGIS σε λειτουργία, μπορούμε να φορτώσουμε τα χωρικά δεδομένα χρησιμοποιώντας διάφορα εργαλεία και μορφή όπως GeoJSON, CSV κ.λπ.

Για αυτήν την περίπτωση, χρησιμοποιούμε ένα Shapefile όπως φαίνεται στις ακόλουθες εντολές:

$ mkdir -p ~/data
$ cd ~/δεδομένα
wget https://www.naturalearthdata.com/http//www.naturalearthdata.com/download/110m/cultural/ne_110m_admin_0_countries.zip
$ αποσυμπιέστε ne_110m_admin_0_countries.zip

Στις εντολές που δίνονται, ξεκινάμε δημιουργώντας έναν κατάλογο για να αποθηκεύσουμε τα δεδομένα που θέλουμε να φορτώσουμε. Στη συνέχεια, κατεβάζουμε ένα γεωγραφικά δεδομένα από τον καθορισμένο σύνδεσμο και τα εξάγουμε στον κατάλογο.

Το επόμενο βήμα είναι να φορτώσετε τα δεδομένα στη βάση δεδομένων. Ξεκινάμε συνδέοντας στη βάση δεδομένων PostgreSQL χρησιμοποιώντας την ακόλουθη εντολή:

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

Εάν σας ζητηθεί κωδικός πρόσβασης, δώστε τον κωδικό πρόσβασης που ρυθμίσατε κατά την εκτέλεση του κοντέινερ. Αυτό θα πρέπει να σας ελέγξει την ταυτότητα και να σας ρίξει στο κέλυφος PostgreSQL.

Αφού συνδεθούμε στη βάση δεδομένων, μπορούμε να χρησιμοποιήσουμε το βοηθητικό πρόγραμμα “shp2pgsql” για να εισαγάγουμε τα δεδομένα από τα Shapefiles που εξάγαμε στα προηγούμενα βήματα.

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

Στην προηγούμενη εντολή, χρησιμοποιούμε την επιλογή -I για να δημιουργήσουμε ένα χωρικό ευρετήριο για ταχύτερη αναζήτηση των χωρικών δεδομένων. Καθορίζουμε επίσης το σύστημα συντεταγμένων ως 4326 χρησιμοποιώντας την παράμετρο -s. Το EPSG:4326 είναι το τυπικό σύστημα κατάστασης συντεταγμένων για το WGS 84.

Δεδομένα ερωτημάτων PostGIS

Μόλις φορτώσουμε τα δεδομένα, μπορούμε να βγούμε από το βοηθητικό πρόγραμμα PSQL εκτελώντας την εντολή '\q' ή έξοδο.

Στη συνέχεια, για να επαληθεύσουμε ότι έχουμε φορτώσει τα δεδομένα, μπορούμε να επανασυνδεθούμε στη βάση δεδομένων εκτελώντας την ακόλουθη εντολή:

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

Στη συνέχεια, μπορείτε να εκτελέσετε τα βασικά χωρικά ερωτήματα για να επαληθεύσετε ότι έχετε αποθηκευμένα τα δεδομένα.

συμπέρασμα

Σε αυτό το σεμινάριο, μάθατε πώς να εκτελείτε τον διακομιστή PostGIS ως κοντέινερ Docker και να φορτώνετε τα δεδομένα στη βάση δεδομένων.