Käivitage PostGIS-server Dockeri konteinerina

Kaivitage Postgis Server Dockeri Konteinerina



Pole kahtlust, et Dockerist on viimastel aastatel saanud üks enimkasutatavaid arendajatööriistu. Docker võimaldab meil rakendusi arendada, pakendada, tarnida ja käitada isoleeritud keskkondades, mis sisaldavad kõiki rakenduse käitamiseks vajalikke sõltuvusi.

PostGIS on PostgreSQL-i andmebaasi laiendus, mis lisab geograafiliste andmeobjektide toe. See võimaldab meil ruumiandmete salvestamiseks ja päringute tegemiseks kasutada PostgreSQL-i andmebaasi. Nagu võite arvata, pakub PostGIS-i ja Dockeri kombineerimine tõhusa ja ulatusliku meetodi ruumiandmete haldamiseks.

Selles õpetuses õpime, kuidas saame kiiresti Dockeri konteineris PostGIS-i eksemplari seadistada. Samuti käsitleme mõningaid PostGIS-i põhitõdesid ja õpime, kuidas laadida ruumiandmeid ja teha konteineri abil põhipäringuid.







Nõuded:

Selle õpetuse järgimiseks veenduge, et teil on järgmised asjad.



  1. Teie süsteemi installitud Docker Engine. Saate vaadata meie õpetusi Dockeri installimise kohta oma sihtsüsteemi.
  2. PostgreSQL-i ja ruumiandmete baasteadmised

Kui etteantud nõuded on täidetud, saame õpetusega edasi minna.



Käivitage Dockeris PostGIS

Jätkame ja seadistame PostGIS-i konteineri. Alustuseks tõmbame Docker Hubist PostGIS-i konteineri järgmise käsuga:





$ docker pull postgis/postgis

Kui pilt on alla laaditud, saame konteineri käivitada, kasutades pilti, nagu on näidatud järgmises käsus:



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

Antud käsus määrame järgmised parameetrid:

  1. –nimi – see võimaldab meil määrata konteineri nime.
  2. -e – See võimaldab meil määrata keskkonnamuutujaks PostgreSQL-i parooli. See on parool, mida kasutatakse postgresi kasutaja jaoks.
  3. -d – see käsib Dockeril käitada konteinerit taustal või eraldatud režiimis.
  4. -p 5432:5432 – see võimaldab meil kaardistada konteineris oleva pordi 5432 pordi 5432 hostiga.

Konteiner töötamise kontrollimiseks kasutage järgmist käsku:

$ docker ps

Peaksite nägema loendis PostGIS-i konteinerit.

Laadige ruumiandmed PostGIS-i

Nüüd, kui meil töötab PostGIS-i konteiner, saame laadida ruumiandmeid erinevate tööriistade ja vormingute (nt GeoJSON, CSV jne) abil.

Sel juhul kasutame Shapefile'i, nagu on näidatud järgmistes käskudes:

$ mkdir -p ~/andmed
$ cd ~/andmed
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

Antud käskudes loome alustuseks kataloogi, kuhu salvestada andmed, mida soovime laadida. Seejärel laadime määratud lingilt alla geoandmed ja ekstraheerime need kataloogi.

Järgmine samm on andmete laadimine andmebaasi. Alustuseks loome ühenduse PostgreSQL-i andmebaasiga, kasutades järgmist käsku:

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

Kui küsitakse parooli, sisestage parool, mille konfigureerisite konteineri käitamisel. See peaks teid autentima ja viima teid PostgreSQL-i kesta.

Pärast andmebaasiga ühendamist saame kasutada utiliiti 'shp2pgsql', et importida andmed eelmistes sammudes ekstraheeritud kujufailidest.

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

Eelmises käsus kasutame ruumiandmete kiiremaks päringu tegemiseks ruumiindeksi loomiseks suvandit -I. Samuti määrame koordinaatide süsteemiks 4326, kasutades parameetrit -s. EPSG:4326 on WGS 84 standardne koordinaatide olekusüsteem.

PostGIS-i päringuandmed

Kui oleme andmed laadinud, saame PSQL-i utiliidist väljuda, käivitades käsu „\q” või väljudes.

Järgmiseks saame andmete laadimise kontrollimiseks andmebaasiga uuesti ühenduse luua, käivitades järgmise käsu:

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

Järgmisena saate käivitada põhilised ruumipäringud, et kontrollida, kas andmed on salvestatud.

Järeldus

Selles õpetuses õppisite, kuidas käivitada PostGIS-server Dockeri konteinerina ja laadida andmed andmebaasi.