Cómo instalar PostGIS, PgAdmin y PostgreSQL en Docker
PostgreSQL debe ser uno de los servidores SQL más usados y avanzados. PostGIS puede hacer que nuestra instalación de PostgreSQL sea más poderosa agregando geometría espacial y PgAdmin 4 es el compañero perfecto para ambos. Ahora instalémoslos en contenedores de Docker.

Instalando Docker
Antes que nada, necesitamos instalar docker en nuestra PC/Servidor, por suerte ya cubrimos este tema en otro post.
Solo como recordatorio, nuestro entorno de Docker sería distinto si usáramos Linux, Mac o Windows, por lo tanto, las guías de instalación son un poco distintas para cada uno de estos entornos.
Instalando PostgreSQL
PostgreSQL tiene una imagen para Docker como muchos otros servidores SQL, podríamos instalar PostgreSQL creando un archivo docker-compose.yml con este contenido:
version: '2'
services:
postgres:
image: 'postgres:latest'
restart: always
volumes:
- './postgres_data:/var/lib/postgresql/data'
environment:
- POSTGRES_PASSWORD=PASSWORD_HERE
ports:
- '5432:5432'
Después iríamos a la carpeta que contiene el archivo a través de nuestra consola preferida y ejecutaríamos:
docker-compose up -d
¡Y listo! Ya tendrías tu contenedor de docker configurado con PostgreSQL adentro…
¿Pero qué pasa con PgAdmin y PostGIS? Estas son herramientas poderosas que se pueden conectar a PostgreSQL.
Corriendo un contenedor de Docker con PgAdmin
El archivo docker-compose.yml que haría esto posible sería:
version: '3.8'
services:
pgadmin:
container_name: PgAdmin_container
image: dpage/pgadmin4
restart: always
environment:
PGADMIN_DEFAULT_EMAIL: root@root.com
PGADMIN_DEFAULT_PASSWORD: PASSWORD_HERE
ports:
- "5050:80"
Esto va a correr dos contenedores anidados

Accederías a PgAdmin yendo a HTTP://127.0.0.1:5050/ y tendrías que conectarte a tu instancia de PostgreSQL usando la dirección IP LAN de tu computadora (para verla en Windows escribí IPCONFIG en CMD, en Linux IFCONFIG) (porque localhost sería el contenedor)
Corriendo PostgreSQL y PgAdmin juntos en Docker
Si quisiéramos correr PostgreSQL y PgAdmin juntos, nuestro docker-compose.yml se vería así:
version: '3.8'
services:
db:
container_name: Postgres_Server
image: 'postgres:latest'
restart: always
environment:
POSTGRES_USER: root
POSTGRES_PASSWORD: PASSWORD_HERE
POSTGRES_DB: DATABASE_NAME_HERE
ports:
- "5432:5432"
volumes:
- './postgres_data:/var/lib/postgresql/data'
pgadmin:
container_name: PgAdmin_container
image: dpage/pgadmin4
restart: always
environment:
PGADMIN_DEFAULT_EMAIL: root@root.com
PGADMIN_DEFAULT_PASSWORD: PASSWORD_HERE
ports:
- "5050:80"
Cómo instalar PostGIS en Docker
Primero, empecemos diciendo que PostGIS es una extensión de PostgreSQL, podríamos instalarla en nuestra instalación de PostgreSQL o podríamos usar la imagen de docker de PostGIS, en el segundo caso, nuestro docker-compose.yml se vería más o menos así:
version: '2'
services:
postgres:
image: 'postgis/postgis:latest'
restart: always
volumes:
- './postgres_data:/var/lib/postgresql/data'
environment:
- POSTGRES_PASSWORD=PASSWORD_HERE
ports:
- '5432:5432'
Esto va a instalar nuestro contenedor de docker con PostgreSQL y PostGIS, que va a convertir nuestra instalación de PostgreSQL en una base de datos espacial.
Cómo instalar PostGIS, PostgreSQL y PgAdmin 4 en Docker
Por último, vamos a combinar nuestros códigos para generar dos contenedores con PostGIS, PostgreSQL y PgAdmin 4, nuestro docker-compose.yml va a ser:
version: '3.8'
services:
db:
container_name: Postgres_Server
image: 'postgis/postgis:latest'
restart: always
environment:
POSTGRES_USER: root
POSTGRES_PASSWORD: PASSWORD_HERE
POSTGRES_DB: DATABASE_NAME_HERE
ports:
- "5432:5432"
volumes:
- './postgres_data:/var/lib/postgresql/data'
pgadmin:
container_name: PgAdmin_container
image: dpage/pgadmin4
restart: always
environment:
PGADMIN_DEFAULT_EMAIL: root@root.com
PGADMIN_DEFAULT_PASSWORD: PASSWORD_HERE
ports:
- "5050:80"
Como podés ver, estamos creando contenedores anidados como hacemos cuando instalamos PostgreSQL y PgAdmin juntos, pero en este caso, estamos usando la imagen de PostGIS (que viene con PostgreSQL) en lugar de la imagen de PostgreSQL.
Si vas directo al final, después de hacer este docker-compose.yml deberías ir a tu consola preferida y ejecutar:
docker-compose up -d
Conclusión
Docker es bastante simple de usar una vez que lo entendés bien, acá tenés otro post donde indagamos cada variable del archivo docker-compose.
Si querés saber más sobre PostGIS podés encontrarlo en la página web de PostGIS que tiene mucha documentación en la que podés confiar.
Como siempre, espero que encuentres útil este tutorial, ¡y nos vemos en el próximo!