Cómo configurar PostgreSQL en Docker para desarrollo colaborativo
Configurar PostgreSQL dentro de un contenedor Docker es una excelente manera de asegurar que todos los miembros de tu equipo de desarrollo trabajen con el mismo entorno, evitando problemas de compatibilidad. En este tutorial, te mostraremos cómo levantar una instancia de PostgreSQL usando Docker en solo unos pasos.
¿Por qué usar Docker?
Docker permite empaquetar y distribuir entornos completos, lo que asegura que cada miembro del equipo esté utilizando la misma versión de PostgreSQL y la misma configuración. Esto reduce problemas de “funciona en mi máquina” y facilita la integración continua.
Requisitos
- Docker instalado en tu sistema (Guía oficial de instalación)
- Una terminal o línea de comandos
1. Crear un archivo docker-compose.yml
Para levantar una instancia de PostgreSQL de forma rápida y sencilla, utilizaremos Docker Compose. Primero, crea un archivo llamado docker-compose.yml en el directorio raíz de tu proyecto.
version: '3.8'
services:
db:
image: postgres:latest
container_name: postgres-db
environment:
POSTGRES_USER: myuser
POSTGRES_PASSWORD: mypassword
POSTGRES_DB: mydatabase
ports:
- "5432:5432"
volumes:
- ./postgres-data:/var/lib/postgresql/data
networks:
- mynetwork
networks:
mynetwork:
driver: bridge
Este archivo define un contenedor llamado postgres-db que usa la imagen oficial de PostgreSQL. También especifica variables de entorno como el nombre de usuario, contraseña y base de datos, que podrás modificar según tus necesidades.
2. Levantar el contenedor de PostgreSQL
Ahora que tienes tu docker-compose.yml, simplemente abre una terminal y ejecuta el siguiente comando para levantar el servicio de PostgreSQL:
docker-compose up -d
Este comando iniciará el contenedor en segundo plano (-d para “detached mode”) y mapeará el puerto 5432 de tu máquina local al puerto 5432 del contenedor, lo que te permitirá conectarte a PostgreSQL desde tu entorno de desarrollo local.
3. Verificar que el contenedor esté corriendo
Para asegurarte de que todo funciona correctamente, puedes verificar el estado de los contenedores en ejecución con:
docker ps
Deberías ver algo como esto:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
abc123def456 postgres:latest "docker-entrypoint.s…" 2 minutes ago Up 2 minutes 0.0.0.0:5432->5432/tcp postgres-db
Si ves el contenedor postgres-db corriendo, ¡felicidades! Ahora tienes PostgreSQL en marcha con Docker.
4. Conectarse a PostgreSQL
Puedes conectarte a la base de datos utilizando cualquier cliente de PostgreSQL como pgAdmin o la línea de comandos de psql. Aquí tienes un ejemplo de cómo conectarte con la CLI de PostgreSQL:
psql -h localhost -p 5432 -U myuser -d mydatabase
Introduce la contraseña mypassword cuando te lo solicite, y estarás dentro del entorno de PostgreSQL en tu contenedor Docker.
5. Persistir datos con volúmenes
Observa que hemos incluido una configuración de volumes en el archivo docker-compose.yml. Esto asegura que los datos de tu base de datos se guarden fuera del contenedor, en el directorio ./postgres-data de tu máquina. De esta forma, aunque detengas o elimines el contenedor, los datos se mantendrán.