Rulați serverul PostGIS ca container Docker

Rulati Serverul Postgis Ca Container Docker



Fără îndoială că Docker a devenit unul dintre cele mai utilizate instrumente de dezvoltare în ultimii ani. Docker ne permite să dezvoltăm, să împachetăm, să livrăm și să rulăm aplicațiile în medii izolate care conține toate dependențele necesare pentru a rula aplicația.

PostGIS este o extensie a bazei de date PostgreSQL care adaugă suport pentru obiectele de date geografice. Acest lucru ne permite să folosim baza de date PostgreSQL pentru a stoca și a interoga datele spațiale. După cum puteți ghici, combinarea PostGIS și Docker oferă o metodă eficientă și extinsă de gestionare a datelor spațiale.

În acest tutorial, vom afla cum putem configura rapid o instanță PostGIS în interiorul unui container Docker. Vom acoperi, de asemenea, câteva elemente de bază PostGIS și vom învăța cum să încărcăm date spațiale și să facem câteva interogări de bază folosind containerul.







Cerințe:

Pentru a urma acest tutorial, asigurați-vă că aveți următoarele:



  1. S-a instalat Docker Engine pe sistemul dvs. Puteți consulta tutorialele noastre despre cum să instalați Docker pe sistemul dvs. țintă.
  2. Cunoștințe de bază despre PostgreSQL și date spațiale

Cu cerințele date îndeplinite, putem continua cu tutorialul.



Rulați PostGIS în Docker

Să continuăm și să setăm containerul PostGIS. Începem prin a trage containerul PostGIS din Docker Hub cu următoarea comandă:





$ docker pull postgis/postgis

Odată ce avem imaginea descărcată, putem rula containerul folosind imaginea așa cum se arată în următoarea comandă:



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

În comanda dată, specificăm următorii parametri:

  1. –name – Aceasta ne permite să specificăm numele containerului.
  2. -e – Acest lucru ne permite să setăm parola PostgreSQL ca variabilă de mediu. Aceasta este parola care este folosită pentru utilizatorul postgres.
  3. -d – Acesta îi spune lui Docker să ruleze containerul în fundal sau în modul detașat.
  4. -p 5432:5432 – Acest lucru ne permite să mapăm portul 5432 din interiorul containerului la gazda de pe portul 5432.

Pentru a verifica dacă containerul rulează, utilizați următoarea comandă:

$ docker ps

Ar trebui să vedeți containerul PostGIS listat.

Încărcați datele spațiale în PostGIS

Acum că rulăm containerul PostGIS, putem încărca datele spațiale folosind diverse instrumente și formate, cum ar fi GeoJSON, CSV etc.

Pentru acest caz, folosim un Shapefile așa cum se arată în următoarele comenzi:

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

În comenzile date, începem prin a crea un director pentru a stoca datele pe care dorim să le încărcăm. Apoi descarcăm datele geografice de la linkul specificat și le extragem în director.

Următorul pas este încărcarea datelor în baza de date. Începem prin a ne conecta la baza de date PostgreSQL utilizând următoarea comandă:

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

Dacă vi se solicită o parolă, furnizați parola pe care ați configurat-o când rulați containerul. Acest lucru ar trebui să vă autentifice și să vă arunce în shell-ul PostgreSQL.

Odată conectați la baza de date, putem folosi utilitarul „shp2pgsql” pentru a importa datele din Shapefile-urile pe care le-am extras în pașii anteriori.

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

În comanda anterioară, folosim opțiunea -I pentru a crea un index spațial pentru o interogare mai rapidă a datelor spațiale. De asemenea, specificăm sistemul de coordonate ca 4326 folosind parametrul -s. EPSG:4326 este sistemul standard de stare de coordonate pentru WGS 84.

Date de interogare PostGIS

Odată ce am încărcat datele, putem ieși din utilitarul PSQL rulând comanda „\q” sau ieșind.

Apoi, pentru a verifica dacă avem datele încărcate, ne putem reconecta la baza de date rulând următoarea comandă:

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

Apoi, puteți rula interogările spațiale de bază pentru a verifica dacă aveți datele stocate.

Concluzie

În acest tutorial, ați învățat cum să rulați serverul PostGIS ca container Docker și să încărcați datele în baza de date.