Suorita PostGIS-palvelin Docker-säiliönä

Suorita Postgis Palvelin Docker Sailiona



Ei ole epäilystäkään siitä, että Dockerista on tullut yksi yleisimmin käytetyistä kehittäjätyökaluista viime vuosina. Dockerin avulla voimme kehittää, pakata, toimittaa ja suorittaa sovelluksia eristetyissä ympäristöissä, jotka sisältävät kaikki sovelluksen suorittamiseen tarvittavat riippuvuudet.

PostGIS on PostgreSQL-tietokannan laajennus, joka lisää tuen maantieteellisille tietoobjekteille. Tämä antaa meille mahdollisuuden käyttää PostgreSQL-tietokantaa tilatietojen tallentamiseen ja kyselyyn. Kuten arvata saattaa, PostGIS:n ja Dockerin yhdistäminen tarjoaa tehokkaan ja kattavan tavan hallita paikkatietoja.

Tässä opetusohjelmassa opimme kuinka voimme nopeasti määrittää PostGIS-esiintymän Docker-säilön sisällä. Käsittelemme myös joitain PostGIS-perusasioita ja opimme lataamaan paikkatietoja ja suorittamaan joitain peruskyselyitä säilön avulla.







Vaatimukset:

Jotta voit seurata tätä opetusohjelmaa, varmista, että sinulla on seuraavat asiat:



  1. Asennettu Docker Engine järjestelmääsi. Voit tarkistaa opetusohjelmamme Dockerin asentamisesta kohdejärjestelmääsi.
  2. Perustiedot PostgreSQL:stä ja paikkatiedoista

Kun annetut vaatimukset täyttyvät, voimme jatkaa opetusohjelmaa.



Suorita PostGIS Dockerissa

Jatketaan ja määritetään PostGIS-säilö. Aloitamme vetämällä PostGIS-säiliön Docker Hubista seuraavalla komennolla:





$ docker pull postgis/postgis

Kun kuva on ladattu, voimme ajaa säilön käyttämällä kuvaa seuraavan komennon mukaisesti:



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

Annetussa komennossa määritämme seuraavat parametrit:

  1. –nimi – Tämän avulla voimme määrittää säilön nimen.
  2. -e – Tämän avulla voimme asettaa PostgreSQL-salasanan ympäristömuuttujaksi. Tämä on salasana, jota käytetään postgres-käyttäjälle.
  3. -d – Tämä käskee Dockeria ajamaan säilöä taustalla tai irrotetussa tilassa.
  4. -p 5432:5432 – Tämän avulla voimme kartoittaa säiliön sisällä olevan portin 5432 portin 5432 isäntään.

Voit varmistaa, että säilö on käynnissä, käyttämällä seuraavaa komentoa:

$ docker ps

Sinun pitäisi nähdä PostGIS-säilö luettelossa.

Lataa paikkatiedot PostGIS:ään

Nyt kun PostGIS-säilö on käynnissä, voimme ladata paikkatiedot käyttämällä erilaisia ​​työkaluja ja muotoja, kuten GeoJSON, CSV jne.

Tässä tapauksessa käytämme Shapefileä seuraavien komentojen mukaisesti:

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

Annetuissa komennoissa aloitamme luomalla hakemiston, johon tallennetaan tiedot, jotka haluamme ladata. Lataamme sitten geotiedot määritetystä linkistä ja puramme ne hakemistoon.

Seuraava vaihe on tietojen lataaminen tietokantaan. Aloitamme muodostamalla yhteyden PostgreSQL-tietokantaan seuraavalla komennolla:

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

Jos sinua pyydetään antamaan salasana, anna salasana, jonka määritit säilöä suoritettaessa. Tämän pitäisi todentaa sinut ja pudottaa sinut PostgreSQL-kuoreen.

Kun yhteys tietokantaan, voimme käyttää 'shp2pgsql' -apuohjelmaa tuodaksesi tiedot Shape-tiedostoista, jotka purimme edellisissä vaiheissa.

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

Edellisessä komennossa käytämme -I-vaihtoehtoa luomaan paikkatietoindeksin paikkatietojen nopeampaa kyselyä varten. Määritämme myös koordinaatistoksi 4326 parametrilla -s. EPSG:4326 on WGS 84:n vakiokoordinaattitilajärjestelmä.

PostGIS-kyselytiedot

Kun olemme ladaneet tiedot, voimme poistua PSQL-apuohjelmasta suorittamalla '\q'-komennon tai poistumalla.

Seuraavaksi varmistaaksemme, että tiedot ovat ladattu, voimme muodostaa yhteyden tietokantaan uudelleen suorittamalla seuraavan komennon:

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

Seuraavaksi voit suorittaa perustilakyselyt varmistaaksesi, että tiedot on tallennettu.

Johtopäätös

Tässä opetusohjelmassa opit käyttämään PostGIS-palvelinta Docker-säilönä ja lataamaan tiedot tietokantaan.