Executeu el servidor PostGIS com a contenidor Docker

Executeu El Servidor Postgis Com A Contenidor Docker



No hi ha dubte que Docker s'ha convertit en una de les eines de desenvolupament més utilitzades en els últims anys. Docker ens permet desenvolupar, empaquetar, enviar i executar les aplicacions en entorns aïllats que continguin totes les dependències necessàries per executar l'aplicació.

PostGIS és una extensió de la base de dades PostgreSQL que afegeix suport per a objectes de dades geogràfiques. Això ens permet utilitzar la base de dades PostgreSQL per emmagatzemar i consultar dades espacials. Com podeu suposar, la combinació de PostGIS i Docker proporciona un mètode eficaç i extens per gestionar les dades espacials.

En aquest tutorial, aprendrem com podem configurar ràpidament una instància PostGIS dins d'un contenidor Docker. També tractarem alguns conceptes bàsics de PostGIS i aprendrem a carregar dades espacials i realitzar algunes consultes bàsiques mitjançant el contenidor.







Requisits:

Per seguir aquest tutorial, assegureu-vos que teniu el següent:



  1. S'ha instal·lat Docker Engine al vostre sistema. Podeu consultar els nostres tutorials sobre com instal·lar Docker al vostre sistema de destinació.
  2. Coneixements bàsics de PostgreSQL i dades espacials

Amb els requisits establerts, podem continuar amb el tutorial.



Executeu PostGIS a Docker

Continuem i configurem el contenidor PostGIS. Comencem traient el contenidor PostGIS del Docker Hub amb l'ordre següent:





$ docker pull postgis/postgis

Un cop tinguem la imatge descarregada, podem executar el contenidor utilitzant la imatge tal com es mostra a la següent comanda:



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

A l'ordre donada, especifiquem els paràmetres següents:

  1. –name – Això ens permet especificar el nom del contenidor.
  2. -e - Això ens permet establir la contrasenya de PostgreSQL com a variable d'entorn. Aquesta és la contrasenya que s'utilitza per a l'usuari de postgres.
  3. -d – Això indica a Docker que executi el contenidor en segon pla o en mode desconnectat.
  4. -p 5432:5432: això ens permet mapar el port 5432 dins del contenidor amb l'amfitrió del port 5432.

Per verificar que el contenidor s'està executant, utilitzeu l'ordre següent:

$ docker ps

Hauríeu de veure el contenidor de PostGIS a la llista.

Carregueu les dades espacials a PostGIS

Ara que tenim el contenidor PostGIS en execució, podem carregar les dades espacials utilitzant diverses eines i formats com GeoJSON, CSV, etc.

Per a aquest cas, utilitzem un Shapefile tal com es mostra a les ordres següents:

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

En les ordres donades, comencem creant un directori per emmagatzemar les dades que volem carregar. A continuació, baixem una informació geogràfica de l'enllaç especificat i l'extreim al directori.

El següent pas és carregar les dades a la base de dades. Comencem connectant-nos a la base de dades PostgreSQL mitjançant l'ordre següent:

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

Si se us demana una contrasenya, proporcioneu la contrasenya que heu configurat en executar el contenidor. Això us hauria d'autenticar i enviar-vos a l'intèrpret d'ordres de PostgreSQL.

Un cop connectats a la base de dades, podem utilitzar la utilitat “shp2pgsql” per importar les dades dels Shapefiles que hem extret als passos anteriors.

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

A l'ordre anterior, utilitzem l'opció -I per crear un índex espacial per a una consulta més ràpida de les dades espacials. També especifiquem el sistema de coordenades com a 4326 mitjançant el paràmetre -s. L'EPG:4326 és el sistema d'estat de coordenades estàndard per a WGS 84.

Dades de consulta de PostGIS

Un cop hem carregat les dades, podem sortir de la utilitat PSQL executant l'ordre '\q' o sortint.

A continuació, per verificar que tenim les dades carregades, ens podem tornar a connectar a la base de dades executant l'ordre següent:

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

A continuació, podeu executar les consultes espacials bàsiques per verificar que teniu les dades emmagatzemades.

Conclusió

En aquest tutorial, heu après com executar el servidor PostGIS com a contenidor Docker i carregar les dades a la base de dades.