Paleiskite PostGIS serverį kaip Docker konteinerį

Paleiskite Postgis Serveri Kaip Docker Konteineri



Neabejotina, kad „Docker“ pastaraisiais metais tapo vienu plačiausiai naudojamų kūrėjų įrankių. „Docker“ leidžia mums kurti, supakuoti, išsiųsti ir paleisti programas izoliuotose aplinkose, kuriose yra visos priklausomybės, reikalingos programai paleisti.

PostGIS yra PostgreSQL duomenų bazės plėtinys, papildantis geografinių duomenų objektų palaikymą. Tai leidžia mums naudoti PostgreSQL duomenų bazę erdviniams duomenims saugoti ir jų užklausoms pateikti. Kaip galite atspėti, PostGIS ir Docker derinimas suteikia veiksmingą ir platų erdvinių duomenų valdymo būdą.

Šioje pamokoje sužinosime, kaip galime greitai nustatyti PostGIS egzempliorių Docker konteineryje. Taip pat apžvelgsime kai kuriuos PostGIS pagrindus ir sužinosime, kaip įkelti erdvinius duomenis ir atlikti keletą pagrindinių užklausų naudojant konteinerį.







Reikalavimai:

Jei norite tęsti šią mokymo programą, įsitikinkite, kad turite:



  1. Jūsų sistemoje įdiegtas „Docker Engine“. Galite peržiūrėti mūsų vadovus, kaip įdiegti „Docker“ tikslinėje sistemoje.
  2. Pagrindinės žinios apie PostgreSQL ir erdvinius duomenis

Įvykdę nurodytus reikalavimus, galime tęsti mokymo programą.



Paleiskite PostGIS programoje Docker

Tęskime ir nustatykime PostGIS konteinerį. Pradedame ištraukdami „PostGIS“ konteinerį iš „Docker Hub“ naudodami šią komandą:





$ docker pull postgis/postgis

Atsisiuntę vaizdą, galime paleisti konteinerį naudodami vaizdą, kaip parodyta šioje komandoje:



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

Pateiktoje komandoje nurodome šiuos parametrus:

  1. –pavadinimas – leidžia mums nurodyti konteinerio pavadinimą.
  2. -e – Tai leidžia mums nustatyti PostgreSQL slaptažodį kaip aplinkos kintamąjį. Tai slaptažodis, naudojamas postgres vartotojui.
  3. -d – tai nurodo „Docker“ paleisti konteinerį fone arba atskirtu režimu.
  4. -p 5432:5432 – tai leidžia susieti konteinerio viduje esantį 5432 prievadą su 5432 prievado pagrindiniu kompiuteriu.

Norėdami patikrinti, ar konteineris veikia, naudokite šią komandą:

$ docker ps

Turėtumėte matyti „PostGIS“ konteinerį.

Įkelkite erdvinius duomenis į PostGIS

Dabar, kai veikia PostGIS konteineris, galime įkelti erdvinius duomenis naudodami įvairius įrankius ir formatus, tokius kaip GeoJSON, CSV ir kt.

Šiuo atveju naudojame Shapefile, kaip parodyta šiose komandose:

$ mkdir -p ~/duomenys
$ cd ~/duomenys
wget https://www.naturalearthdata.com/http//www.naturalearthdata.com/download/110m/cultural/ne_110m_admin_0_countries.zip
$ išpakuokite ne_110m_admin_0_countries.zip

Pateiktose komandose pradedame sukurti katalogą, kuriame saugomi duomenys, kuriuos norime įkelti. Tada atsisiunčiame geografinius duomenis iš nurodytos nuorodos ir ištraukiame juos į katalogą.

Kitas žingsnis yra įkelti duomenis į duomenų bazę. Pradedame prisijungdami prie PostgreSQL duomenų bazės naudodami šią komandą:

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

Jei būsite paraginti įvesti slaptažodį, pateikite slaptažodį, kurį sukonfigūravote paleisdami sudėtinį rodinį. Tai turėtų jus autentifikuoti ir perkelti į PostgreSQL apvalkalą.

Prisijungę prie duomenų bazės, galime naudoti „shp2pgsql“ įrankį, norėdami importuoti duomenis iš „Shapefiles“, kuriuos ištraukėme atlikdami ankstesnius veiksmus.

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

Ankstesnėje komandoje mes naudojame parinktį -I, kad sukurtume erdvinį indeksą, kad būtų galima greičiau pateikti erdvinių duomenų užklausas. Taip pat nurodome koordinačių sistemą kaip 4326, naudodami parametrą -s. EPSG:4326 yra standartinė WGS 84 koordinačių būsenos sistema.

PostGIS užklausos duomenys

Įkėlę duomenis galime išeiti iš PSQL programos paleisdami komandą „\q“ arba išeidami.

Tada norėdami patikrinti, ar įkelti duomenys, galime iš naujo prisijungti prie duomenų bazės vykdydami šią komandą:

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

Tada galite paleisti pagrindines erdvines užklausas, kad patikrintumėte, ar saugomi duomenys.

Išvada

Šioje pamokoje sužinojote, kaip paleisti PostGIS serverį kaip Docker konteinerį ir įkelti duomenis į duomenų bazę.