Pokrenite PostGIS poslužitelj kao Docker spremnik

Pokrenite Postgis Posluzitelj Kao Docker Spremnik



Nema sumnje da je Docker posljednjih godina postao jedan od najčešće korištenih razvojnih alata. Docker nam omogućuje razvoj, pakiranje, otpremanje i pokretanje aplikacija u izoliranim okruženjima koja sadrže sve ovisnosti potrebne za pokretanje aplikacije.

PostGIS je proširenje PostgreSQL baze podataka koja dodaje podršku za objekte geografskih podataka. To nam omogućuje da koristimo PostgreSQL bazu podataka za pohranu i upite prostornih podataka. Kao što možete pogoditi, kombinacija PostGIS-a i Dockera pruža učinkovitu i opsežnu metodu upravljanja prostornim podacima.

U ovom vodiču naučit ćemo kako možemo brzo postaviti PostGIS instancu unutar Docker spremnika. Također ćemo pokriti neke osnove PostGIS-a i naučiti kako učitati prostorne podatke i izvesti neke osnovne upite pomoću spremnika.







Zahtjevi:

Da biste pratili ovaj vodič, provjerite imate li sljedeće:



  1. Instaliran Docker Engine na vašem sustavu. Možete pogledati naše vodiče o tome kako instalirati Docker na vaš ciljni sustav.
  2. Osnovno poznavanje PostgreSQL-a i prostornih podataka

Kada su zadani zahtjevi ispunjeni, možemo nastaviti s podukom.



Pokrenite PostGIS u Dockeru

Nastavimo i postavimo PostGIS spremnik. Počinjemo povlačenjem PostGIS spremnika iz Docker Huba sljedećom naredbom:





$ docker pull postgis/postgis

Nakon što preuzmemo sliku, možemo pokrenuti spremnik pomoću slike kao što je prikazano u sljedećoj naredbi:



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

U zadanoj naredbi specificiramo sljedeće parametre:

  1. –name – Ovo nam omogućuje da navedemo naziv spremnika.
  2. -e – Ovo nam omogućuje postavljanje lozinke za PostgreSQL kao varijablu okruženja. Ovo je lozinka koja se koristi za postgres korisnika.
  3. -d – Ovo govori Dockeru da pokrene spremnik u pozadini ili odvojenom načinu rada.
  4. -p 5432:5432 – Ovo nam omogućuje mapiranje porta 5432 unutar spremnika na host na portu 5432.

Da biste provjerili radi li spremnik, upotrijebite sljedeću naredbu:

$ docker ps

Trebali biste vidjeti PostGIS spremnik na popisu.

Učitajte prostorne podatke u PostGIS

Sada kada imamo pokrenut PostGIS spremnik, možemo učitati prostorne podatke pomoću raznih alata i formata kao što su GeoJSON, CSV itd.

U ovom slučaju koristimo Shapefile kao što je prikazano u sljedećim naredbama:

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

U zadanim naredbama počinjemo stvaranjem direktorija za pohranu podataka koje želimo učitati. Zatim preuzimamo geografske podatke s navedene veze i izdvajamo ih u direktorij.

Sljedeći korak je učitavanje podataka u bazu podataka. Počinjemo spajanjem na PostgreSQL bazu podataka pomoću sljedeće naredbe:

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

Ako se od vas zatraži lozinka, unesite lozinku koju ste konfigurirali prilikom pokretanja spremnika. Ovo bi vas trebalo autentificirati i prebaciti u PostgreSQL ljusku.

Nakon što se povežemo s bazom podataka, možemo koristiti pomoćni program 'shp2pgsql' za uvoz podataka iz Shapefilesa koje smo ekstrahirali u prethodnim koracima.

postgres=# shp2pgsql -I -s 4326 ne_110m_admin_0_države | psql -U postgres -d postgres

U prethodnoj naredbi koristimo -I opciju za kreiranje prostornog indeksa za brže upite prostornih podataka. Također specificiramo koordinatni sustav kao 4326 pomoću parametra -s. EPSG:4326 standardni je sustav koordinatnog stanja za WGS 84.

PostGIS podaci upita

Nakon što učitamo podatke, možemo izaći iz PSQL uslužnog programa pokretanjem naredbe “\q” ili izlazom.

Zatim, kako bismo potvrdili da imamo učitane podatke, možemo se ponovno povezati s bazom podataka pokretanjem sljedeće naredbe:

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

Zatim možete pokrenuti osnovne prostorne upite kako biste provjerili imate li podatke pohranjene.

Zaključak

U ovom ste vodiču naučili kako pokrenuti PostGIS poslužitelj kao Docker spremnik i učitati podatke u bazu podataka.