Ejecute el servidor PostGIS como un contenedor Docker

Ejecute El Servidor Postgis Como Un Contenedor Docker



No hay duda de que Docker se ha convertido en una de las herramientas de desarrollo más utilizadas en los últimos años. Docker nos permite desarrollar, empaquetar, enviar y ejecutar aplicaciones en entornos aislados que contienen todas las dependencias necesarias para ejecutar la aplicación.

PostGIS es una extensión de la base de datos PostgreSQL que agrega soporte para objetos de datos geográficos. Esto nos permite utilizar la base de datos PostgreSQL para almacenar y consultar datos espaciales. Como puede adivinar, la combinación de PostGIS y Docker proporciona un método eficiente y extenso para administrar datos espaciales.

En este tutorial, aprenderemos cómo podemos configurar rápidamente una instancia de PostGIS dentro de un contenedor Docker. También cubriremos algunos conceptos básicos de PostGIS y aprenderemos cómo cargar datos espaciales y realizar algunas consultas básicas utilizando el contenedor.







Requisitos:

Para seguir este tutorial, asegúrese de tener lo siguiente:



  1. Instalé Docker Engine en su sistema. Puede consultar nuestros tutoriales sobre cómo instalar Docker en su sistema de destino.
  2. Conocimientos básicos de PostgreSQL y datos espaciales.

Una vez cumplidos los requisitos dados, podemos continuar con el tutorial.



Ejecute PostGIS en Docker

Procedamos y configuremos el contenedor PostGIS. Comenzamos extrayendo el contenedor PostGIS de Docker Hub con el siguiente comando:





$ ventana acoplable extrae postgis/postgis

Una vez que hayamos descargado la imagen, podemos ejecutar el contenedor usando la imagen como se muestra en el siguiente comando:



$ docker run --name postgis-server -e POSTGRES_PASSWORD =contraseña -d -p 5432:5432 postgis/postgis

En el comando dado, especificamos los siguientes parámetros:

  1. –nombre: esto nos permite especificar el nombre del contenedor.
  2. -e – Esto nos permite establecer la contraseña de PostgreSQL como variable de entorno. Esta es la contraseña que se utiliza para el usuario de postgres.
  3. -d: esto le indica a Docker que ejecute el contenedor en segundo plano o en modo independiente.
  4. -p 5432:5432: esto nos permite asignar el puerto 5432 dentro del contenedor al host en el puerto 5432.

Para verificar que el contenedor se esté ejecutando, use el siguiente comando:

$ ventana acoplable ps

Debería ver el contenedor PostGIS en la lista.

Cargar los datos espaciales en PostGIS

Ahora que tenemos el contenedor PostGIS ejecutándose, podemos cargar los datos espaciales usando varias herramientas y formatos como GeoJSON, CSV, etc.

Para este caso, usamos un Shapefile como se muestra en los siguientes comandos:

$ mkdir -p ~/datos
$ cd ~/datos
wgethttps://www.naturalearthdata.com/http//www.naturalearthdata.com/download/110m/cultural/ne_110m_admin_0_countries.zip
$ descomprimir ne_110m_admin_0_countries.zip

En los comandos dados, comenzamos creando un directorio para almacenar los datos que deseamos cargar. Luego descargamos datos geográficos del enlace especificado y los extraemos en el directorio.

El siguiente paso es cargar los datos en la base de datos. Comenzamos conectándonos a la base de datos PostgreSQL usando el siguiente comando:

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

Si se le solicita una contraseña, proporcione la contraseña que configuró al ejecutar el contenedor. Esto debería autenticarte y colocarte en el shell de PostgreSQL.

Una vez conectados a la base de datos, podemos usar la utilidad “shp2pgsql” para importar los datos de los Shapefiles que extrajimos en los pasos anteriores.

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

En el comando anterior, usamos la opción -I para crear un índice espacial para una consulta más rápida de los datos espaciales. También especificamos el sistema de coordenadas como 4326 usando el parámetro -s. EPSG:4326 es el sistema de estado de coordenadas estándar para WGS 84.

Datos de consulta PostGIS

Una vez que cargamos los datos, podemos salir de la utilidad PSQL ejecutando el comando “\q” o salir.

A continuación, para verificar que tenemos los datos cargados, podemos volver a conectarnos a la base de datos ejecutando el siguiente comando:

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

A continuación, puede ejecutar las consultas espaciales básicas para verificar que tiene los datos almacenados.

Conclusión

En este tutorial, aprendió cómo ejecutar el servidor PostGIS como un contenedor Docker y cargar los datos en la base de datos.