Crear un contenedor de Docker con PostGIS (Parte II)


En el tutorial anterior vimos cómo instalar Docker y comprobar que funciona correctamente en nuestra máquina.

Una vez comprobado que Docker funciona, vamos a crear nuestra base de datos. Antes de nada, resulta evidente que queremos que la información que se almacene en ella sea persistente en el tiempo y no desaparezca cada vez que paramos o iniciamos nuestro contenedor. Para ello crearemos un volumen, un mecanismo que permite que la información y archivos de la base de datos se almacenen fuera del contenedor, por lo que dicha información no se perderá. Vamos a crear el volumen:

						
docker volume create pg_data
						
					

Donde pg_data es el nombre del volumen que hemos creado.

Ahora sí, vamos a crear la base de datos:

						
docker run --name=postgis -e POSTGRES_USER=user -e POSTGRES_PASS=password -e POSTGRES_DBNAME=gis -e ALLOW_IP_RANGE=0.0.0.0/0 -p 5432:5432 -v pg_data:/var/lib/postgresql kartoza/postgis
						
					

Vamos a diseccionar este comando para entender qué hace paso por paso:

docker run –name=postgis indica que nuestro contenedor se va a llamar postgis

-e POSTGRES_USER=user el flag -e indica que se va a establecer una variable de entorno dentro del contenedor. En este caso, estamos estableciendo el nombre del administrador de la base de datos.

-e POSTGRES_PASS=password establece la contraseña del administrador de la base de datos.

POSTGRES_DBNAME=gis genera una nueva base de datos en el servidor llamada gis.

-e ALLOW_IP_RANGE=0.0.0.0/0 indica al contenedor que configue PostgreSQL para aceptar conexiones desde cualquier lugar.

-p 5432:5432 establece que el contenedor escuche en el puerto 5432.

-v pg_data:/var/lib/postgresql indica al contenedor que monte y utilice el volumen pg_data que acabamos de crear en el directorio :/var/lib/postgresql. Esto hace, como se ha dicho antes, que cualquier información que el contenedor cree o guarde sea almacenada en dicho volumen.

kartoza/postgis indica a Docker que se descargue la imagen desde el repositorio de Docker Hub de kartoza/postgis.


Dado que yo ya tengo una imagen del mismo repositorio instalado en mi máquina, instalaré la versión 9.6-2.4 a modo ilustrativo y para evitar conflictos.


Una vez la imagen se ha descargado, podemos comprobar que el contenedor se ha iniciado escribiendo docker ps.

						
docker ps
						
					

¡Voilà! Ya tenemos nuestro contenedor configurado y funcionando, en el siguiente tutorial veremos cómo conectar y trabajar con PostGIS en Docker desde QGIS, ¡no os lo perdáis!.




Sobre el Autor


Fran Martín Rivas

Ambientólogo enamorado de los mapas y la programación, con la suerte de haber podido convertir ambas pasiones en mi profesión. Soy analista y desarrollador de SIG y me encanta formarme y seguir aprendiendo en el ámbito de la Geoinformación.


¿Eres desarrollador? Únete a la red